2016-10-31 7 views
1

Я пытаюсь скомпилировать Matcaffe в Ubuntu 16.04. Я мог бы успешно скомпилировать кофе и pycaffe (используя gcc 5). Однако с Ubuntu 16.04 поставляется с GCC 5 и MATLAB R2016b совместим с GCC 4.9, я получил следующее предупреждение во время компиляции (с помощью грим matcafee):Matcaffe on Ubuntu 16.04

MEX matlab/+caffe/private/caffe_.cpp Building with 'g++'. Warning: You are using gcc version '5.4.0'. The version of gcc is not supported. The version currently supported with MEX is '4.9.x'. For a list of currently supported compilers see: http://www.mathworks.com/support/compilers/current_release . MEX completed successfully.

Даже если файл MEX создан, я не могу используйте его из MATLAB, потому что он не распознает их.

Для решения этой проблемы я установил gcc 4.9 и g ++ 4.9 и обновил символические ссылки для их использования. Когда я пытаюсь скомпилировать matcaffe, я получаю следующее сообщение об ошибке:

MEX matlab/+caffe/private/caffe_.cpp Building with 'g++'. /tmp/mex_286607035953408_13265/caffe_.o: In function net_copy_from(int, mxArray_tag**, int, mxArray_tag const**)': caffe_.cpp:(.text+0x167d): undefined reference to caffe::Net::CopyTrainedLayersFrom(std::string)' /tmp/mex_286607035953408_13265/caffe_.o: In function 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::vector > const*, caffe::Net const*)' /tmp/mex_286607035953408_13265/caffe_.o: In function get_solver(int, mxArray_tag**, int, mxArray_tag const**)': caffe_.cpp:(.text+0x343f): undefined reference to caffe::ReadSolverParamsFromTextFileOrDie(std::string const&, caffe::SolverParameter*)' /tmp/mex_286607035953408_13265/caffe_.o: In function 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 google::base::CheckOpMessageBuilder::NewString()' /tmp/mex_286607035953408_13265/caffe_.o: In function 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 google::base::CheckOpMessageBuilder::NewString()' collect2: error: ld returned 1 exit status

Makefile:511: recipe for target 'matlab/+caffe/private/caffe_.mexa64' failed make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255

Кто-нибудь успешно скомпилирован Matcaffe на Ubuntu 16.04? Я также пробовал такую ​​же процедуру с MATLAB R2014b и gcc 4.7, но без каких-либо успехов.

ответ

1

Caffe скомпилирован с системной версией libstdC++ и opencv, но связан с версией matlab при запуске matcaffe. Я решил эту проблему целесообразно путем добавления

export LD_PRELOAD=${LD_PRELOAD}:/usr/local/x86_64-linux-gnu/libstdc++.so.6 

к ~/.bashrc и отключение OpenCV (раскомментируйте USE_OPENCV := 0 в Makefile.config) при построении Caffe.

+0

Это работает, спасибо за исправление! – user1586259

 Смежные вопросы

  • Нет связанных вопросов^_^