Mac OSX の dyld: Library not loaded を回避する

私製ソフトをその Mac OSXだけで動かすならいいんですが、配布するとなると、ライブラリファイルのことを考えなきゃいけないのでした|・ω・)

この辺りは Windows の Runtimeと同じみたいですね

dyld: Library not loaded: /usr/local/lib/うにょうにょ.dylib Referenced from: /usr/local/lib/うにょうにょ.dylib Reason: image not found

なんてエラーが出てきて困りました

まず、配布するDYLD(DYnamic LoaDer の略)をターゲットライブラリパスにインストールします。

次に、~/.bash_profile に以下を追記します

if [ -n "$DYLD_LIBRARY_PATH" ]; then
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
else
DYLD_LIBRARY_PATH=/usr/local/lib
fi
export DYLD_LIBRARY_PATH

水色が自分で用意したライブラリを入れるPathです

これで、ターミナルを再起動すれば実行できるようになります。

printenv で環境変数に代入されていればOK
DYLD_LIBRARY_PATHが存在すれば 元のDYLD_LIBRARY_PATH に ":" で区切ってパス追加。
なければ新規作成 というシェルスクリプトです

「存在しなければ」なので、ライブラリパスの検索順位の後ろにしておくのがコツです|・ω・)

バージョンが違うモジュールがあれば、動かなくなるソフトもありますから、個別設定する必要があるケースもあるかもしれませんね。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です