0

MacPortsを介してインストールされたFreeImage。すべて問題ないように見えましたが、アプリをビルドして、MacPortsとFreeImageがインストールされていない他のコンピューターで起動しようとすると、

dyld: Library not loaded: /opt/local/lib/libfreeimage.3.dylib
  Referenced from: /Users/development/Library/Developer/Xcode/DerivedData/freeimage-dxsornyaxqlkyubqwsrlkgszvxhy/Build/Products/Debug/freeimage.app/Contents/MacOS/freeimage
  Reason: image not found

私のプロジェクトと一緒にライブラリファイルをコピーするべきではありませんか?それらをプロジェクトのビルドフェーズの「ファイルのコピー」リストに追加しました。それらは私のアプリのバンドルにコピーされています。しかし、それらをリンクしようとすると、同じエラーが発生します。理由はわかりませんが、アプリはまだ/ opt / local/libでライブラリを探しています。プロジェクトでFreeImageを使用して、任意のコンピューターで実行できるようにするには、どうすれば修正できますか?

4

1 に答える 1

0

MacPortsを介してインストールする場合、ライブラリはプロジェクトパスではなく/ opt / local/libにインストールされます。プロジェクト全体をコピーしても、*dylibライブラリは通常/opt / local / libにあるため、コピーされません。

ここには2つのオプションがあると思います。アプリケーションを実行するすべてのコンピューターにFreeImageをインストールするか、libfreeimage.3.dylibをバイナリと同じフォルダーにコピーします。両方のシステムが類似している場合は、それが機能するはずです。2台のコンピューターがオペレーティングシステムのバージョン、ハードウェアアーキテクチャなどの点で異なる場合は、おそらく、使用している.dylibは他のコンピューターと互換性がありません。

考慮したいもう1つのことは、DYLD_LIBRARY_PATH変数を変更することです。これは、リンク時にOSがライブラリを検索するパスを指定します。詳細については、この回答を参照してください。

于 2012-07-27T08:28:47.607 に答える