我正在使用cmake创建包
我有以下结构
bin/
bin1
lib/
lib1
lib2
其中lib1和lib2是外部动态库。如何设置RPATH以便它自动链接lib1和lib2?
答案 0 :(得分:5)
我也一直在为cmake烦恼。 Cmake在构建时使用CMAKE_SKIP_BUILD_RPATH进行链接,使用CMAKE_INSTALL_RPATH来设置构建安装目标时使用的rpath。 cmake有一些关于使用其rpath机制的好信息: http://www.cmake.org/Wiki/CMake_RPATH_handling
另一种方法是使用ldconfig。我注意到当你构建svn(1.6.17)时,它的make install目标调用ldconfig来设置rpath。
看看$ ORIGIN,因为你需要在你的rpath中保持它相对于二进制而不是相对于$ PWD。 p>
Building a simple (hello-world-esque) example of using ld's option -rpath with $ORIGIN
答案 1 :(得分:0)
AFAIK,CMake会自动将rpath添加到您与target_link_libraries()链接的所有目标。
要关闭它,可以选择CMAKE_SKIP_RPATH
。