2

Xcode 4.5 と MacOS 10.7.4 を実行しており、ローカル配布用の MacOS アプリを作成しようとしています。

サードパーティの USB ハードウェア ベンダーからの dylib があります。これを /usr/lib にドロップするのではなく、アプリにバンドルしたかったのです。ここに記載されているすべての方法を試しましたが、次のことがわかりました。

Cocoa ライブラリ ターゲットを作成し、コピー ビルド フェーズを使用して、@rpath と @executable_path と @loader_path でパスを設定します ...

これが私が遭遇したものです:

dylib がターゲット アプリと同じディレクトリにコピーされている場合 (宛先を「製品ディレクトリ」に設定することにより)、ターゲット アプリをコンパイルして実行するようにビルドできますが、これはアプリが Xcode 内で実行されている場合にのみ機能します。ファインダーからアプリを実行すると、/usr/lib で dylib が検索されます。

宛先設定を変更するときの注意: 以前のビルドの場所にコピーされたファイルは、ビルドを再度変更しても削除されません。これにより、解決策がないのに解決策があると何度か考えさせられました。

「ライブラリ検索パス」はリンク時に期待どおりに機能するように見えますが、「動的ライブラリ インストール名」と「実行パス検索パス」を設定しても、コードが実行時にのみ /usr/lib を検索するのを止めないようには見えません。それらはまったく効果がないようです。

では、これらのパス変数を設定しても効果がないのはなぜですか? また、ランタイム検索パスを設定するにはどうすればよいでしょうか?

4

0 に答える 0