Ubuntu 16.04 で Matcaffe をコンパイルしようとしています。(gcc 5 を使用して) caffe と pycaffe を正常にコンパイルできました。ただし、Ubuntu 16.04 には gcc 5 が付属しており、MATLAB R2016b は gcc 4.9 と互換性があるため、コンパイル中に次の警告が表示されました ( make matcafeeを使用):
MEX matlab/+caffe/private/caffe_.cpp 'g++' によるビルド。警告: gcc バージョン '5.4.0' を使用しています。gcc のバージョンはサポートされていません。MEX で現在サポートされているバージョンは '4.9.x' です。現在サポートされているコンパイラのリストについては、http: //www.mathworks.com/support/compilers/current_releaseを参照してください。MEX が正常に完了しました。
MEXファイルを作ってもMATLABが認識しないので使えません。
この問題を解決するために、gcc 4.9 と g++ 4.9 をインストールし、それらを使用するようにシンボリック リンクを更新しました。matcaffe をコンパイルしようとすると、次のエラー メッセージが表示されます。
MEX matlab/+caffe/private/caffe_.cpp 'g++' によるビルド。/tmp/mex_286607035953408_13265/caffe_.o: 関数
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: 関数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: 関数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: 関数内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: 関数内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: エラー: ld が 1 つの終了ステータスを返しましたMakefile:511: ターゲット 'matlab/+caffe/private/caffe_.mexa64' のレシピが作成に失敗しました: *** [matlab/+caffe/private/caffe_.mexa64] エラー 255
Ubuntu 16.04 で Matcaffe を正常にコンパイルした人はいますか? MATLAB R2014b と gcc 4.7 でも同じ手順を試しましたが、成功しませんでした。