带包装的CMAKE RPATH

时间:2011-12-06 14:24:41

标签: cmake rpath

我正在使用cmake创建包

我有以下结构

bin/
    bin1
lib/

    lib1
    lib2

其中lib1和lib2是外部动态库。如何设置RPATH以便它自动链接lib1和lib2?

2 个答案:

答案 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。

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