2

私は xcode IDE を初めて使用し、dylib を参照するのに苦労しています。

libmwmclmrt.7.16.dylib にリンクして、Matlab ランタイム初期化関数を呼び出そうとしています。ビルド フェーズ -> バイナリとライブラリのリンクに追加しました。また、dylibs を含むディレクトリを追加しました */Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/ maci64* へ

実行パス 検索パス フレームワーク検索パス ライブラリ検索パス

プロジェクトとターゲット ビルドの両方の設定で。

コンパイルは成功しますが、関数 mclInitializeApplication() を呼び出すプログラムを実行すると、次のエラーが発生します。

「MCR を初期化しようとしているときにエラーが発生しました。
エラーは次のとおりです: ライブラリの読み込み中に致命的なエラーが発生しました /usr/local/lib/libmx.dylib エラー: dlopen(/usr/local/lib/libmx.dylib, 9): ライブラリがありませんロード: libtbb.dylib 参照元: /Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64/ libut.dylib 理由: イメージが見つかりません

otool が dylib に関する情報を提供できることを知り、libmx.dylib が /Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64/ で他のさまざまな dylib を参照していることを確認しました

> otool -L libmx.dylib 
libmx.dylib:
    @rpath/libmx.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libmwresource_core.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libmwi18n.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libut.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libmwfl.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libmwMATLAB_res.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libicudata.44.dylib (compatibility version 44.0.0, current version 44.2.0)
    @rpath/libicuuc.44.dylib (compatibility version 44.0.0, current version 44.2.0)
    @rpath/libicui18n.44.dylib (compatibility version 44.0.0, current version 44.2.0)
    @rpath/libicuio.44.dylib (compatibility version 44.0.0, current version 44.2.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)

必要なすべての dylib が予想される場所にあるのに、なぜまだ参照できないのか、画像が見つからないというエラーが発生するのはなぜですか

$ pwd
/Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64
$ ls -lrt libtbb.dylib 
-r-xr-xr-x  1 bakkiraju  admin  487912 Jul  8  2011 libtbb.dylib

$ ls -lrt libu
libuij.dylib  libut.dylib   

$ ls -lrt libut.dylib 
-r-xr-xr-x  1 bakkiraju  admin  1217088 Jul 26  2011 libut.dylib

これらのファイルを /usr/local/lib にコピーすると、エラーが解消されます。これらの必要なdylibへの参照が正しく機能し始めるように、xcodeを構成するにはどうすればよいですか。それらを /usr/local/lib にコピーしたくありません

4

1 に答える 1

0

部分的な回答: ビルド設定の下で、ライブラリ パスをBuild Settings>Linking>Runpath Search Pathに追加するだけでなく、同じパスをBuild Settings>Search Paths>Library Search Pathsにも追加する必要があります。

私は XCode を使い始めたばかりで、ライブラリ (特に MATLAB のもの) とのリンクは簡単ではありませんでした (ただし、コツをつかめば、Makefile を記述するよりもはるかに簡単だと思います)。MATLAB メッセージ ボードに簡単なチュートリアルを書きました: http://www.mathworks.com/matlabcentral/answers/31073-tutorial-for-libmat-under-xcode-4-2

于 2016-04-21T20:41:49.873 に答える