cmake - CMAKE_INSTALL_PREFIX 和 CMAKE_INSTALL_RPATH 有什么区别

标签 cmake

我很难理解 CMAKE_INSTALL_PREFIX 和 CMAKE_INSTALL_RPATH 之间的区别。

如果我理解得很好, CMAKE_INSTALL_PREFIX 是将要安装的前缀目录。因此,如果我使用以下脚本进行安装:

project(hello)
add_library(hello hello.h hello.cpp)
set(CMAKE_INSTALL_PREFIX "c:/ABC/DEF")
INSTALL(TARGETS hello EXPORT hello_export
            RUNTIME DESTINATION bin
            LIBRARY DESTINATION bin
            ARCHIVE DESTINATION lib
            FRAMEWORK DESTINATION bin
            INCLUDES  DESTINATION include
            )

然后静态库将安装在 C:/ABC/DEF/lib 中。

然后,我的问题是使用 CMAKE_INSTALL_RPATH 有什么意义?

最佳答案

在支持 c:/ABC/DEF 形式路径的系统上(即 Windows),无。 Windows 二进制文件没有 rpath 的概念.

在具有 DT_RPATH 的系统上和 DT_RUNPATH (= 那些使用 ELF 二进制文件的),CMake 变量 CMAKE_INSTALL_RPATH用于设置DT_RPATH的值(或 DT_RUNPATH )标签,这些标签将在安装时写入二进制文件。

关于cmake - CMAKE_INSTALL_PREFIX 和 CMAKE_INSTALL_RPATH 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047805/

相关文章:

qt - 如何使用 CMake 从 qmake 建模 OTHER_FILES?

cmake 在 add_custom_target 命令中错误地解析参数

cmake - 如何配置 cmake 以获取非默认的可执行文件

c++ - open62541:引用函数的链接器工具错误

android - 从 NDK 版本 16 更新到 NDK 版本 17 时出错

cmake - 链接第 3 方库

opencv - CMakeLists.txt CMAKE_PREFIX_PATH 处的 CMake 错误

c++ - 找不到 compile_commands.json

msbuild - 调试 CMake 项目创建

c++ - 无法在 Windows : Could NOT find Lua (missing: LUA_LIBRARIES) (found version "5.3.4") 上使用 CMake 链接到 Lua 5.3.4