macのdylibのロード方法
macでdylibのプロジェクト(ここでは、libXXXX.dylib)とそれを使用するアプリ(ここではXXXXDriver)のプロジェクトがあって、xcodeからは実行できるけど、ターミナルから叩くと
dyld: Library not loaded: /usr/local/lib/libXXXX.dylib
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/XXXXi_dylib-cagqvakmzwqigmgxxrwzutupseja/Build/Products/Release/./XXXXDriver
Reason: image not found
Trace/BPT trap: 5
というようなメッセージが出力されて起動できない問題に対処したのでメモ
解決方法1:/usr/local/libに ロードしようとする libXXXX.dylibをコピーする
→ 環境が汚れるし、なんか負けた気がするのでNG
解決方法2:起動用のshファイルを作ってそれを叩く方法
test.shファイルを作ってそれをターミナルから叩いて実行させるようにする話。
#!/bin/sh
# dylibのロードするパスを通す
export DYLD_LIBRARY_PATH=/Users/username/Library/Developer/Xcode/DerivedData/XXXXi_dylib-cagqvakmzwqigmgxxrwzutupseja/Build/Products/Release:$DYLD_LIBRARY_PATH
# 実行
./XXXXDriver
このファイルをtest.shとして保存して、chmod +x test.sh とやって実行できるようにする。
これでターミナル上で./test.shと叩けば、きちんと実行できるようになる!!
コメント