4

mex を使用して matlab プログラムをコンパイルしようとしています。次のエラーに直面しており、何か提案があるかどうか疑問に思っていました。に mpfr の最新バージョンをインストールしまし/usr/local/opt/mpfrたが、まだ選択中/usr/local/opt/mpfr2です。

エラーは次のとおりです。

dyld: ライブラリがロードされていません: /usr/local/opt/mpfr2/lib/libmpfr.1.dylib 参照元: /usr/local/Cellar/gcc48/4.8.1/gcc/libexec/gcc/x86_64-apple-darwin12. 5.0/4.8.1/cc1plus 理由: 互換性のないライブラリ バージョン: cc1plus にはバージョン 4.0.0 以降が必要ですが、libmpfr.1.dylib はバージョン 3.0.0 を提供します g++-4.8: 内部コンパイラ エラー: トレース/BPT トラップ: 5 (プログラム cc1plus) /Applications/MATLAB_R2012b.app/bin/mex: 1326 行目: 15075 中止トラップ: 6 /usr/local/bin/g++-4.8 -c - I/Applications/MATLAB_R2012b.app/extern/include -I/Applications/MATLAB_R2012b.app/simulink/include -DMATLAB_MEX_FILE -fno-common -fexceptions -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX .platform/Developer/SDKs/MacOSX10.8.sdk/ -mmacosx-version-min=10.7 -DMX_COMPAT_32 -O2 -DNDEBUG "face-detection/src/resizef.cc" -o face-detection/private/resizef.o

4

2 に答える 2

2

コンパイルする前に、次のコマンドを実行してみてください。

setenv('DYLD_LIBRARY_PATH','')

何か他のもの (Matlab プログラムではない) をコンパイルしようとしたところ、同じエラーが発生しました。同じコマンドが bash でも機能したため、環境変数を調べたところ、Matlab の DYLD_LIBRARY_PATH が bash の DYLD_LIBRARY_PATH と異なることがわかりました。bash DYLD_LIBRARY_PATH が定義されていなかったので、Matlab で空に設定し、パス エラーを修正しました。

Matlab の setenv ドキュメント:

setenv を使用して変数に割り当てられた値
は、MATLAB SYSTEM、UNIX、DOS、または '!' を使用して生成されたプロセスによって取得されます。
機能。
GETENV(NAME)を使用して、setenv で設定された任意の値を取得できます。

于 2013-12-12T22:15:09.433 に答える