【发布时间】:2021-01-06 21:48:39
【问题描述】:
我想将Protobuf_INCLUDE_DIRS 设置为我选择的目录,但是我不知道该怎么做。
$ locate FindProtobuf.cmake
/usr/share/cmake-3.16/Modules/FindProtobuf.cmake
我可以看到在FindProtobuf.cmake,我们有这些:
if(Protobuf_FOUND)
set(Protobuf_INCLUDE_DIRS ${Protobuf_INCLUDE_DIR})
endif()
我希望这里设置为第二个选项:
$ which -a protoc
/home/mona/anaconda3/bin/protoc
/usr/local/bin/protoc
然而,它被设置为第一个选项/home/mona/anaconda3/bin/protoc,尽管在 ~/.bashrc 中强制它为第二个选项:/usr/local/bin/protoc,使用以下命令:alias protoc=/usr/local/bin/protoc
我的程序需要的版本是 3.6.1,别名 protoc=/usr/local/bin/protoc 保证了这一点。但是,ProtobufCMake 强制路径为 /home/mona/anaconda3/bin/protoc 并且该版本为 3.13.0。
关于我面临的问题。我正在使用 openpose 并在 Ubuntu 20.04 中安装它,我使用的是 CMake。它要求 protobuf 版本为 3.6.1。
更多信息在这里https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/1817
以下是消息:
CMake Error at /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:469 (file):
file STRINGS file "/usr/include/google/protobuf/stubs/common.h" cannot be
read.
Call Stack (most recent call first):
CMakeLists.txt:429 (find_package)
CMake Error at /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:475 (math):
math cannot parse the expression: " / 1000000": syntax error, unexpected
exp_DIVIDE (2).
Call Stack (most recent call first):
CMakeLists.txt:429 (find_package)
CMake Error at /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:476 (math):
math cannot parse the expression: " / 1000 % 1000": syntax error,
unexpected exp_DIVIDE (2).
Call Stack (most recent call first):
CMakeLists.txt:429 (find_package)
CMake Error at /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:477 (math):
math cannot parse the expression: " % 1000": syntax error, unexpected
exp_MOD (2).
Call Stack (most recent call first):
CMakeLists.txt:429 (find_package)
CMake Warning at /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:499 (message):
Protobuf compiler version 3.13.0 doesn't match library version
ERROR.ERROR.ERROR
Call Stack (most recent call first):
CMakeLists.txt:429 (find_package)
【问题讨论】:
标签: cmake protocol-buffers cmake-gui