[CMake] Adding dylib with either @rpath or absolute paths to osx cmd line executable target
Bart Nabbe
bana at cs.cmu.edu
Tue Feb 19 12:03:57 EST 2013
That is precisely what I ended up doing. A per target post build rule that runs install_name_tool. With all cmake's wizardry, I sorta figured somebody must have thought about this already ;)
Thanks for the tip, I feel better now that I did not overlook something!
On Feb 19, 2013, at 8:58, Clinton Stimpson wrote:
> Have you looked at using "install_name_tool -id" to change the id of the
> shared library.
>
> If you do install_name_tool -id @rpath/libiomp5.dylib /path/to/libiomp5.dylib
>
> Then when you link dylibLinkTest and then check it with otool -L, it will
> already have "@rpath/libiomp5.dylib" instead of just a plain "libiomp5.dylib"
> With that, there will be no need to constantly fix your executables with
> install_name_tool each time you link.
>
> BundleUtilities pulls all the dependencies into a bundle and uses
> @executable_path. BundleUtilities does not support @rpath, except that it is
> recognized and changed to @executable_path.
>
> Clint
>
> On Friday, February 15, 2013 06:57:35 PM Bart Nabbe wrote:
>> Hi,
>>
>> I'm sure I just overlooked something, but I can not get shared libraries (at
>> a non system location) to load properly at runtime after having had them
>> linked properly. If I run otool -L the library is listed without any path
>> or loader reference: dylibLinkTest:
>> libiomp5.dylib (compatibility version 5.0.0, current version 5.0.0)
>> libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
>> 159.1.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
>> version 52.0.0)
>>
>>
>> I can use the install_name_tool to change these to @rpath/libiomp5.dylib and
>> @rpath/libtbb.dylib respectively and all is well (I set rpath with a linker
>> option in my CMakeLists.txt). From searching I did learn about the
>> BundleUtilities, but I'm not quite sure how I would use it or if it would
>> really be suitable to solve the problem.
>>
>> Any suggestions would be greatly appreciated.
>>
>>
>> Thanks,
>>
>> Bart
>>
>> --
>>
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list