不使用系统 Protobuf 库时出现“Protobuf 编译器版本与库版本 3.6.1 不匹配”

新手上路,请多包涵

我使用 CMake 作为构建工具,并为我在项目中使用的所有库预先打包了二进制文件。其中一个库是 Protobuf,可以通过 Conan IO 下载。所以,我想使用柯南下载的 Protobuf,而不是 Linux 已经安装的。问题是运行时出现以下错误 CMake

 CMake Warning at /home/username/Documents/project/test/build/venv/lib/python3.6/site-packages/cmake/data/share/cmake-3.10/Modules/FindProtobuf.cmake:455 (message):
  Protobuf compiler version doesn't match library version 3.6.1
Call Stack (most recent call first):
  /home/username/Documents/project/test/script/cmake/Env.cmake:139 (include)
  CMakeLists.txt:6 (include)

-- Found Protobuf: /home/username/Documents/project/test/build/venv/.conan/data/Protobuf/3.6.1/project/dev/package/80043e232e8ab07f4b25e67652a9490d9ad33d91/lib/libprotobuf.so;-lpthread (found version "3.6.1")
CMake Warning at /home/username/Documents/project/test/build/venv/lib/python3.6/site-packages/cmake/data/share/cmake-3.10/Modules/FindProtobuf.cmake:455 (message):
  Protobuf compiler version doesn't match library version 3.6.1
Call Stack (most recent call first):
  /home/username/Documents/project/test/src/shared/bysp/CMakeLists.txt:9 (find_package)

有没有办法来解决这个问题?这会导致错误吗?

原文由 JigsawCorp 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

我在 Raspberry 中解决了它,将下一个选项添加到 CMake 调用中。

  -D Protobuf_PROTOC_EXECUTABLE=/usr/bin/protoc

原文由 arhuaco 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题