2016年4月28日木曜日

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と叩けば、きちんと実行できるようになる!!



0 件のコメント: