windows(vs2017) 和 ubutun 平台下 使用 protobuf 3.5.1 安装及使用 防坑指南 - Go语言中文社区

windows(vs2017) 和 ubutun 平台下 使用 protobuf 3.5.1 安装及使用 防坑指南


windows 平台 (vs2017)

  • 安装protobuf

    1. 首先安装cmake
      CMake:https://cmake.org/download/
    2. 下载protobuf的C++版本的源代码
      https://github.com/google/protobuf/releases
      下载 protobuf-cpp-3.5.1.zip 这个包
    3. 解压源码 (路径不要带中文)
    4. 使用cmake 生成 vs2017 工程
      这里写图片描述
      这里写图片描述
      稍等片刻
      这里写图片描述
      这里写图片描述
    5. 进入生成的 vs2017 工程目录 然后用vs2017 打开项目
    6. F7 等待漫长的编译。。。
    7. 编译完成 生成的文件 在 vs2017工程目录/Debug 目录下
  • 使用protobuf
    1. 随便建一个vs2017 测试工程 这个不是重点 。。
    2. 修改配置 (这个很重要 )
      1,修改预处理器定义:
      项目属性->c/c++ -> 预处理器 -> 预处理器定义 添加这个PROTOBUF_USE_DLLS;宏定义
      2, 添加包含目录 库目录 这个简单 添加protobuf源码 src 目录 和刚刚生成的 debug目录 。看图
      这里写图片描述
      3,添加依赖项
      添加libprotocd.lib; libprotobufd.lib
      这里写图片描述
    3. 编译protobuf 的 .protobuf 文件
      使用 debug目录下生成的 protoc.exe
      protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto
      注意空格,上述参数-I为源目录(你的应用程序源代码位于哪里——如果你没有提供任何值,将使用当前目录)、目标目录(你想要生成的代码放在哪里;常与 $SRC_DIR 相同),以及你的 .proto 文件路径
    4. 具体怎么使用protobuf 的语法 这个不属于本篇的范围 可以看 https://blog.csdn.net/u011518120/article/details/54604615 这位大佬的文章 。

注:windows 平台主要是注意 因为项目默认使用的是 动态链接的方式 我之前踩坑就是用静态库去链接 ;其次是 采用静态链接的方式 需要 加一个 宏定义 也就是在 预处理器中加的那个 。

如果还有其他坑 ,最快的解决方式就是 对照源码中的测试项目 去对照他的配置


Ubutun 平台 x64

CXX_SOURCES=$(wildcard *.cpp)
CXX_SOURCES_PROTOBUF=$(wildcard *.cc)
CXX_OBJECTS=$(OBJ_DIR)/$(patsubst %.cpp,%.o,$(CXX_SOURCES))
CXX_OBJECTS_PROTOBUF=$(OBJ_DIR)/$(patsubst %.cc,%.o,$(CXX_SOURCES_PROTOBUF))

BIN_DIR=./bin
OBJ_DIR=./obj

all: $(CXX_OBJECTS) $(CXX_OBJECTS_PROTOBUF)  #-lprotobuf 
    g++ -g -pthread -I/usr/local/include -L/usr/local/lib -std=gnu++11 $(CXX_OBJECTS) $(CXX_OBJECTS_PROTOBUF)  -o IMServer.out

$(OBJ_DIR)/%.o: %.cpp
    g++ -c -g $< -std=gnu++11 -o $@

$(OBJ_DIR)/%.o: %.cc
    g++ -c -g $< -std=gnu++11 -o $@

主要是需要在链接的时候指定库目录 好吧 也没什么难度 。。。。

  • 使用 (番外篇)
    一定有同学注意到 vs2017 也可以开发 - 编译 - 调试 linux 项目了 ,没错 我就是用vs 在开发。
    然后在编译这个项目时 遇到莫名奇妙的问题 。 当然是项目配置问题 。。 这里也贴一下配置的过程

    1. 添加库依赖项 protobuf;
      这里写图片描述
    2. 添加库目录
      这里写图片描述
    3. 添加命令行选项
      -pthread
      这里写图片描述

    主要问题还是配置库这里 其实套路都一样 。


本篇 完结!

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_33775402/article/details/80209289
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 23:28:41
  • 阅读 ( 2007 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢