![Osx Osx](/uploads/1/1/9/8/119877478/490569468.jpg)
![Path Path](/uploads/1/1/9/8/119877478/481337321.png)
The Dakota project delivers both state-of-the-art research and robust, usable software for optimization and UQ. This post shows how to add an entry to the Mac OS X PATH variable - (1) for the current terminal session only, (2) permanently for the current user only and (3) permanently for all users on a Mac OS X system. Here, the Tomcat startup.sh executable is used as an example. The Dakota project delivers both state-of-the-art research and robust, usable software for optimization and UQ. On Mac OS X, use otool -L. Solaris has the very useful -s option to ldd that will additionally show the full library search path, so you can confirm that you encoded the right rpath in the binary. A partial equivalent under Linux is. With MacOS Catalina, you can have the user Library folder always shown and visible by toggling a settings option in the Finder. This article will show you how to do that, with the end result being that the active users /Library folder is always visible in their Home folder.
Mac Osx Set Library Path Command
I have the following shared libraries linked in my executable:
$ otool -L myexe
mds:
libchartdir.4.dylib (compatibility version 4.0.0, current version 4.1.0)
/opt/local/lib/libQuantLib-0.9.0.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_date_time-1_34_1.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_program_options-1_34_1.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/liblog4cpp.4.dylib (compatibility version 5.0.0, current version 5.6.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.11)
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 861.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
libchartdir, the first library in the otool list, does not have an absolute path set. I have to set the DYLD_FALLBACK_LIBRARY_PATH to /opt/local/lib to let dyld find it at runtime.
What makes the other libraries installed under /opt/local/lib (QuantLib, boost) have their path recorded in the executable?
$ otool -L myexe
mds:
libchartdir.4.dylib (compatibility version 4.0.0, current version 4.1.0)
/opt/local/lib/libQuantLib-0.9.0.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_date_time-1_34_1.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_program_options-1_34_1.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/liblog4cpp.4.dylib (compatibility version 5.0.0, current version 5.6.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.11)
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 861.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
libchartdir, the first library in the otool list, does not have an absolute path set. I have to set the DYLD_FALLBACK_LIBRARY_PATH to /opt/local/lib to let dyld find it at runtime.
What makes the other libraries installed under /opt/local/lib (QuantLib, boost) have their path recorded in the executable?