0

我有这个问题,我正在尝试在 debian 机器上构建 caffe,我将构建所有内容,但最后在链接时我得到多个未定义的对 google::protobuf::... 的引用

我正在附加带有构建日志的文件,其中包含错误消息 (build_caffe.txt)。libprotobuf-dev 和 protoc 都已安装。(dpkg -s 的输出在 proto.txt 中)

以下是我构建 caffe 的方法。

export CXX=g++-4.9
export CC=gcc-4.9
cmake -D CUDA_HOST_COMPILER=/usr/bin/x86_64-linux-gnu-gcc-4.9 -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF ..
make all

请问有人知道这个问题的解决方案吗?

原型.txt

build_caffe.txt

4

1 回答 1

0

看起来您的 protobuf 是使用不同版本的 gcc 编译的。尝试从系统中删除 protobuf 并从源代码安装它,使用与 Caffe 相同的 gcc 版本。(/usr/bin/x86_64-linux-gnu-gcc-4.9 根据您的命令)。
编辑:
如果您无法安装更新的 protobuf,请编辑 $CAFFE_ROOT/cmake/ProtoBuf.cmake 并进行以下更改:

#find_package( Protobuf REQUIRED ) # 1. Comment out this line
# 2. explicitly define protobuf's directories
set(PROTOBUF_INCLUDE_DIR path_to_protobuf/src/google/protobuf)
set(PROTOBUF_LIBRARIES path_to_where_protobuf_libs_are_built_to)
# 3. Explicitly set the full path to protoc executable
set(PROTOBUF_PROTOC_EXECUTABLE path_to_where_the_new_protoc_executable_is_build_to)
# ... Continue as usual
list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${PROTOBUF_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS PUBLIC ${PROTOBUF_LIBRARIES})
#...
于 2017-10-24T08:29:32.930 回答