未定义的引用`google :: protobuf :: internal :: fixed_address_empty_string'

时间:2017-09-26 15:06:36

标签: matlab linker protocol-buffers caffe mex

我使用的是Ubuntu 14.04。我正在尝试使用MATLAB中的mex命令,该命令链接了caffe库和protobuf。但是,运行此脚本时会出现问题:

mex imageset_to_leveldb.cpp -lcaffe -lglog -lgflags -lprotobuf -lleveldb -llmdb ...
 -L/home/wei/Caffe/build/lib ...
 -I/home/wei/Caffe/build/src/caffe/proto

mex serialized_pairs_to_leveldb.cpp -lcaffe -lglog -lgflags -lprotobuf -lleveldb -llmdb ...
 -L/home/wei/Caffe/build/lib ...
 -I/home/wei/Caffe/build/src/caffe/proto

它返回错误:

Building with 'g++'.
Warning: You are using gcc version '4.8.4'. The version of gcc is not supported. The
version currently supported with MEX is '4.7.x'. For a list of currently supported
compilers see: http://www.mathworks.com/support/compilers/current_release.
> In compile (line 2)
Error using mex
/tmp/mex_3078197848859966_35312/imageset_to_leveldb.o: In function `process(unsigned
char*, int, int, int, char const*)':
imageset_to_leveldb.cpp:(.text+0x5dd): undefined reference to
`google::protobuf::internal::fixed_address_empty_string'
collect2: error: ld returned 1 exit status
似乎找不到protobuf lib文件。所以我将protobuf版本和路径检查为:

>>> import google.protobuf
>>> print google.protobuf.__version__
3.1.0.post1
>>> google.protobuf
<module 'google.protobuf' from '/usr/local/lib/python2.7/dist-packages/google/protobuf/__init__.pyc'>

我使用Anaconda。但是,上面的版本检查来自Anaconda Python之外。在conda环境中,我没有protobuf。

我在conda环境中编译了caffe,它通过所有测试而没有错误。

我谷歌,它建议conda install protobuf。它似乎对我不起作用。

对此有什么想法吗?

0 个答案:

没有答案