安装caffe和matlab接口,运行 make matcaffe 时出现以下问题:
caffe::Layer<float>* handle_to_ptr<caffe::Layer<float> >(mxArray_tag const*) in caffe_.o
caffe::Blob<float>* handle_to_ptr<caffe::Blob<float> >(mxArray_tag const*) in caffe_.o
caffe::Solver<float>* handle_to_ptr<caffe::Solver<float> >(mxArray_tag const*) in caffe_.o
caffe::Net<float>* handle_to_ptr<caffe::Net<float> >(mxArray_tag const*) in caffe_.o
caffe::Layer<float>* handle_to_ptr<caffe::Layer<float> >(mxArray_tag const*) in caffe_.o
caffe::Blob<float>* handle_to_ptr<caffe::Blob<float> >(mxArray_tag const*) in caffe_.o
"_mxSetCell_730", referenced from:
net_get_attr(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o
"_mxSetField_730", referenced from:
get_solver(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o
solver_get_attr(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o
get_net(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o
net_get_attr(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o
layer_get_attr(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o
mxArray_tag* ptr_vec_to_handle_vec<caffe::Blob<float> >(std::__1::vector<boost::shared_ptr<caffe::Blob<float> >, std::__1::allocator<boost::shared_ptr<caffe::Blob<float> > > > const&) in caffe_.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [matlab/+caffe/private/caffe_.mexmaci64] Error 255
最终在github上找到解决方案:
在Makefile.config中的LIBRARY_DIRS修改为
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /Applications/MATLAB_R2018a.app/bin/maci64 /usr/lib