【发布时间】:2015-08-04 16:37:34
【问题描述】:
我正在使用 CMake 进行交叉编译。
在我的 CMakeLists.txt 中(用于编译和交叉编译):
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
find_package(foo REQUIRED)
add_library(mylib SHARED ${SRCS})
target_link_libraries(mylib ${FOO_LIBRARIES)
在我的 toolchain.cmake 中:
set(CMAKE_CXX_FLAGS "... --sysroot=/path/to/sysroot/ ... ")
set(CMAKE_CXX_LINK_FLAGS "... --sysroot=/path/to/sysroot/ ... )
...
set(CMAKE_FIND_ROOT_PATH /path/to/sysroot)
考虑 foo 位于 /path/to/sysroot/usr/local/lib/foo.so,当我为 mylib 是 /path/to/sysroot/usr/local/lib
我希望运行时路径是 /usr/local/lib 以反映我的目标文件系统。
如果不在我的 CMakelists.txt 中定义硬编码的 CMAKE_INSTALL_RPATH 变量,我怎么能做到这一点?
编辑:我使用 /usr/local/lib 作为示例,但 foo lib 位于不属于系统目录的特定文件夹中:/path/to/sysroot/usr /local/share/mypackage/lib/foo.so
【问题讨论】:
标签: cmake cross-compiling rpath