首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Ubuntu 16.04的Matcaffe

关于Ubuntu 16.04的Matcaffe
EN

Stack Overflow用户
提问于 2016-10-31 14:42:27
回答 1查看 3.1K关注 0票数 1

我一直试图在Ubuntu16.04中编译Matcaffe。我可以成功地编译caffe和pycaffe (使用gcc 5)。但是,由于Ubuntu16.04附带了gcc 5,而MATLAB R2016b与gcc 4.9兼容,我在编译过程中收到了以下警告(使用matcafee):

MEX matlab/+caffe/private/caffe_..cpp大楼,带有“g++”。警告:您正在使用gcc版本的“5.4.0”。gcc的说法不被支持。MEX目前支持的版本是“4.9.x”。有关当前支持的编译器的列表,请参阅:release。成功完成了。

即使创建了MEX文件,我也无法从MATLAB中使用它,因为它不识别它们。

为了解决这个问题,我安装了gcc 4.9和g++ 4.9,并更新了符号链接以使用它们。当我试图编译matcaffe时,会收到以下错误消息:

MEX matlab/+caffe/private/caffe_..cpp带“g++”的建筑物。/tmp/mex_286607035953408_13265/caffe_.o:在函数caffe::Net::CopyTrainedLayersFrom(std::string)‘/tmp/tmp/mex_286607035953408_13265/caffe_o中:get_net(int, mxArray_tag**, int, mxArray_tag const**)': caffe_.cpp:(.text+0x182b): undefined reference to caffe::Net::Net(std:string const&,caffe::Phase,int,std:net_copy_from(int, mxArray_tag**, int, mxArray_tag const**)': caffe_.cpp:(.text+0x167d): undefined reference to > const*,caffe:Net const*)/tmp/mex_286607035953408_13265/caffe_o: In get_solver(int, mxArray_tag**, int, mxArray_tag const**)': caffe_.cpp:(.text+0x343f): undefined reference to caffe::ReadSolverParamsFromTextFileOrDie(std::string const&,google::base::CheckOpMessageBuilder::NewString()‘/tmp/mex_286607035953408_13265/caffe_.o:函数std::string* google::MakeCheckOpString<int, int>(int const&, int const&, char const*)': caffe_.cpp:(.text._ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc]+0x42): undefined reference to中的std::string* google::MakeCheckOpString<int, int>(int const&, int const&, char const*)': caffe_.cpp:(.text._ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc]+0x42): undefined reference to /tmp/mex_286607035953408_13265/caffe_.o:std::string* google::MakeCheckOpString<unsigned long, int>(unsigned long const&, int const&, char const*)': caffe_.cpp:(.text._ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc]+0x42): undefined reference to std::string* google::MakeCheckOpString<unsigned long, int>(unsigned long const&, int const&, char const*)': caffe_.cpp:(.text._ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc]+0x42): undefined reference to collect2: collect2: ld返回一个退出状态。 Makefile:511:目标‘matlab/+caffe/private/caffe_.make 64’失败的配方:*matlab/+caffe/private/caffe_.make 64错误255

有人在Ubuntu16.04上成功地编译了Matcaffe吗?我也用MATLAB R2014b和gcc 4.7尝试了同样的程序,但没有成功。

EN

回答 1

Stack Overflow用户

发布于 2016-11-22 09:01:45

Caffe是针对libstdc++和opencv的系统版本编译的,但是在运行matcaffe时链接到matlab版本。我用附加的方法解决了这件事

代码语言:javascript
复制
export LD_PRELOAD=${LD_PRELOAD}:/usr/local/x86_64-linux-gnu/libstdc++.so.6

在构建~/.bashrc时禁用opencv (在Makefile.config中取消注释)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40344500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档