2011-10-22 16 views
1

私の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と関係があると思うが、私は正しくそれについて行く方法を知らない。

答えて

0

どちらのシステムも同じですか? 32ビット/ 64ビット、Snow Leopard vs. Leopard

ライブラリがどのように異なっているか、そのような場合にエラーが発生することがあります。

同じ場合は、プロジェクト設定でリンカフラグを設定している可能性があり、ターゲット設定によって上書きされている可能性があります。

+0

はい、どちらもSnow Leopardです。 私のOSだけにliboauthがインストールされていることを確認してください。他のコンピュータはそうしない。私は私のアプリがliboauth.dylibをインクルードの中に組み込み、そこから読み込むことを期待しています。/usr/local/ – rykardo

+0

から読み取ろうとするのとは対照的に、同じものであれば、プロジェクト設定でリンカーフラグを設定していて、ターゲット設定によって上書きされている可能性があります。 – CryptoJones

+0

うーん、いいえ、私はこれを二重にチェックして、どちらの場合も同じです。しかし、良い提案。 私はこれをやろうとしていますが、同じエラーが表示されます。 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

関連する問題