2016-04-17 20 views
0

私はMatlab(link)のランダムフォレストライブラリを使用しています。私はそれを分類に使用しています。 Windowsの場合、それは箱からすぐに使えます(あらかじめ組み合わされたmexファイル)が、CentOSクラスターでも実行したいと思っています。Matlab Mexコンパイルエラー

make mexを実行してクラスタでコンパイルしようとしましたが、エラーが発生しています。出力は次のとおりです。

rm twonorm_test -rf 
rm tempbuild/*.o *.o -rf 
rm *~ -rf 
rm *.mexw32 twonorm_test -rf 
rm *.mexa64 -rf 
rm classRF -rf 
rm *.exe -rf 
echo 'Compiling classTree.cpp' 
Compiling classTree.cpp 
g++ -fpic -O2 -funroll-loops -msse3 -c src/classTree.cpp -o tempbuild/classTree.o 
echo 'Compiling Cokus (random number generator)' 
Compiling Cokus (random number generator) 
g++ -fpic -O2 -funroll-loops -msse3 -c src/cokus.cpp -o tempbuild/cokus.o 
echo 'Compiling rfsub.f (fortran subroutines)' 
Compiling rfsub.f (fortran subroutines) 
gfortran -O2 -fpic -c src/rfsub.f -o rfsub.o 
echo 'Compiling rfutils.cpp' 
Compiling rfutils.cpp 
g++ -fpic -O2 -funroll-loops -msse3 -c src/rfutils.cpp -o tempbuild/rfutils.o 
echo 'Generating Mex' 
Generating Mex 
mex src/mex_ClassificationRF_train.cpp src/classRF.cpp tempbuild/classTree.o tempbuild/rfutils.o rfsub.o tempbuild/cokus.o -o mexClassRF_train -lgfortran -lm -DMATLAB -g 
Unknown MEX argument '-o'. 
make: *** [mex_classRF] Error 255 

誰かがこの問題を解決する方法を知っていますか?必要に応じて、上のリンクからRF_MexStandalone-v0.02.zipを入手し、randomforest-matlab/RF_Reg_C/Makefileに移動します。

編集:私は - 出力する変更-oを持っていますが、今の出力は以下の通りです:

rm twonorm_test -rf 
rm tempbuild/*.o *.o -rf 
rm *~ -rf 
rm *.mexw32 twonorm_test -rf 
rm *.mexa64 -rf 
rm classRF -rf 
rm *.exe -rf 
echo 'Compiling classTree.cpp' 
Compiling classTree.cpp 
g++ -fpic -O2 -funroll-loops -msse3 -c src/classTree.cpp -o tempbuild/classTree.o 
echo 'Compiling Cokus (random number generator)' 
Compiling Cokus (random number generator) 
g++ -fpic -O2 -funroll-loops -msse3 -c src/cokus.cpp -o tempbuild/cokus.o 
echo 'Compiling rfsub.f (fortran subroutines)' 
Compiling rfsub.f (fortran subroutines) 
gfortran -O2 -fpic -c src/rfsub.f -o rfsub.o 
echo 'Compiling rfutils.cpp' 
Compiling rfutils.cpp 
g++ -fpic -O2 -funroll-loops -msse3 -c src/rfutils.cpp -o tempbuild/rfutils.o 
echo 'Generating Mex' 
Generating Mex 
mex src/mex_ClassificationRF_train.cpp src/classRF.cpp tempbuild/classTree.o tempbuild/rfutils.o rfsub.o tempbuild/cokus.o -output mexClassRF_train -lgfortran -lm -DMATLAB -g 
Building with 'g++'. 
cc1plus: error: unrecognized command line option "-std=c++11" 

make: *** [mex_classRF] Error 255 

私はメイクファイルでオプション-std=c++11を見つけられませんでした。

答えて

0

エラーは全くわかりません。オプション-oは認識されません。 mex -helpと入力すると、mexが受け入れるオプションが表示されます。 -o-outputに置き換えてください。

については、std=c++11オプションについては、おそらく旧バージョンのgccコンパイラを使用している可能性があります。同等のオプションであるstd=c++0xに変更するか(ただし、C++ 11標準の一部の機能が実装されていない可能性があります)、gccの最新バージョンにアップグレードすることができます。

さらにヘルプが必要な場合は、g++ --versionの出力を報告してください。

+0

このオプションは、mexが使用するデフォルトの設定など、どこかから来ています。あなたはそれを探すか、(私が前に言ったように)コンパイラ/ツールチェーンをアップグレードすることができます –

関連する問題