Quantcast
Channel: User trojanfoe - Stack Overflow
Viewing all articles
Browse latest Browse all 208

Answer by trojanfoe for dyld: Library not loaded ... Reason: Image not found

$
0
0

Find all the boost libraries (where exefile is the name of your executable):

$ otool -L exefileexefile:        @executable_path/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

and for each libboost_xxx.dylib, do:

$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile

and finally verify using otool again:

$ otool -L exefileexefile:        /opt/local/lib/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

Manpages: otoolinstall_name_tool

EDIT A while back I wrote a python script (copy_dylibs.py) to work out all this stuff automatically when building an app. It will package up all libraries from /usr/local or /opt/local into the app bundle and fix references to those libraries to use @rpath. This means you can easily install third-party library using Homebrew and package them just as easily.

I have now made this script public on github.


Viewing all articles
Browse latest Browse all 208

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>