install_name_tool -change /usr/local/lib/testlib.dylib "$TARGET_BUILD_DIR"/../../testlib.dylib "$PRODUCT_NAME"
xcodeで実行スクリプトに入れると、ダイナミックライブラリのルックアップパスが変更されると上記のように言われました。これは、ターミナルウィンドウに次のように入力することで確認できます
otool -L /drag/the/executable/here/and/its/filepath/will/show/up/testlib
出力は次のようになります
/previous/filepath:
/usr/local/lib/testlib.dylib (compatibility version 1.0.0, current version 1.0.0)
./anothertestlib.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
私の質問は、install_name_toolコマンドが機能しないのはなぜですか?現在はそうではありませんが、testlibプロジェクトがクライアントプロジェクトのターゲット依存関係であったときに実行されました。これで、.dylibをクライアントプロジェクトにドラッグしました。ルックアップパスはusr/local/libにとどまります。
また、usr / local / libとは何ですか、なぜシステムは私のdylibがそこにあると見なし、どのようにしてそこに到達したのですか?