私のxcodeプロジェクトにliboauth.dylibを追加しようとしています(C++)。私が設定され、現在は、今持っている私の/usr/local/lib
に座っているライブラリ、作られています:liboauthが正しくリンクされていません
liboauth.0.dylib
liboauth.dylib <- a link to liboauth.0.dylib
liboauth.li
liboauth.a
をヘッダとusr/local/include
にします。良いと思われる。
私はパスHeader Search Paths
からOther Linker Flags
セクションに/usr/local/lib/liboauth.dylib
、およびusr/local/include/
を追加することによって、私のXcodeでこれを含まれています。
また、同じものをLibrary Search Paths
に含めました。
これは私のシステムでうまくいきます。しかし、結果の.appを別の(osx)コンピュータに取り込むと、/usr/local/liboauth.0.dylib
というエラーが表示されます(これは.appを開いてunix実行ファイルを実行することで取得できます)。
ビルド時にリンカにliboauth dylibを含めてはいけませんか?そして、それは別のコンピュータに行くときには問題ではありませんか?
答えが「いいえ」の場合、liboauth.dylibを.appに含めると、どんなコンピュータ(osxを実行中)でも実行できるようになりますか?
は、ここで特定のエラーです:
Library not loaded: /usr/local/lib/liboauth.0.dylib
Referenced from: /Users/scratch/gameTest.app/Contents/MacOS/gameTest
Reason: image not found
編集:私は問題を発見しました!
Load command 3
cmd LC_ID_DYLIB
cmdsize 56
name /usr/local/lib/liboauth.0.dylib (offset 24)
time stamp 1 Thu Jan 1 12:00:01 1970
current version 9.1.0
compatibility version 9.0.0
誰かがこれを変更する方法を見つけ出すために私を助けることができます:私はこれを見つけたliboauth.0.dylibにコマンドotool -lコマンドを使用していますか?私はそれがinstall_name_toolと関係があると思うが、私は正しくそれについて行く方法を知らない。
はい、どちらもSnow Leopardです。 私のOSだけにliboauthがインストールされていることを確認してください。他のコンピュータはそうしない。私は私のアプリがliboauth.dylibをインクルードの中に組み込み、そこから読み込むことを期待しています。/usr/local/ – rykardo
から読み取ろうとするのとは対照的に、同じものであれば、プロジェクト設定でリンカーフラグを設定していて、ターゲット設定によって上書きされている可能性があります。 – CryptoJones
うーん、いいえ、私はこれを二重にチェックして、どちらの場合も同じです。しかし、良い提案。 私はこれをやろうとしていますが、同じエラーが表示されます。 cp -f /usr/local/lib/liboauth.dylib "$ TARGET_BUILD_DIR/$ PRODUCT_NAME.app/Contents/MacOS/liboauth.dylib"; install_name_tool -change ./liboauth.dylib @ executable_path/liboauth.dylib "$ TARGET_BUILD_DIR/$ PRODUCT_NAME.app/Contents/MacOS/$ PRODUCT_NAME"; これが正しいようですか? – rykardo