我使用的是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
。它似乎对我不起作用。
对此有什么想法吗?