スキップしてメイン コンテンツに移動

投稿

7月, 2022の投稿を表示しています

install_name_toolであるライブラリを参照しているdylibの参照先を変更する(Library not loadedの一解決方法)

非常に簡単なことなんですが、macosでとあるライブラリがあるのに、そのライブラリに依存している別のライブラリが、そのライブラリを見つけられないという状況になりました。結果からいうと非常に簡単なコマンドで解決できましたが、依存元と依存先について言及している資料があまりなかったので、備忘録として挙げておくことにしました。 まず状況としては以下のような状況です。 dyld: Library not loaded: libopenlibm.4.dylib Referenced from: /usr/lib/system/libcompiler_rt.dylib Reason: image not found いうまでもなく、libopenlibm.4.dyliは/usr/lib/system/にあります。そこで、参照元である、/usr/lib/system/libcompiler_rt.dylibの参照情報を以下のようにして確認します。 otool -L usr/lib/system/libcompiler_rt.dylib /usr/lib/system/libcompiler_rt.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/system/libunwind.dylib (compatibility version 1.0.0, current version 35.3.0) libopenlibm.4.dylib (compatibility version 1.0.0, current version 4.0.0) #以下省略 libopenlibm.4.dylibへの参照だけパスが含まれていませんので、参照元のlibcompiler_rt.dyldのこの部分を以下のように変更します。 # ls usr/lib/system/libcompiler_rt.dylib usr/lib/system/libcompiler_rt.dylib install_name_tool -change libopenlibm.4.dylib /usr/lib/system/libopenlibm.4.dylib us