cmake - 如何设置 CMAKE_INSTALL_RPATH 多个目录?

标签 cmake linker dynamic-library rpath

关于问题CMAKE RPATH not working - could not find shared object file我看看如何设置CMAKE_INSTALL_RPATH对于单个路径,但我需要它用于多个路径。我尝试使用这些,但没有成功:

SET( CMAKE_INSTALL_RPATH "/opt/my/lib;/other/lib" )
SET( CMAKE_INSTALL_RPATH "/opt/my/lib:/other/lib" )

关于问题How to set multiple RPATH directories using CMake on MacOS我看到我可以用分号设置多个路径 ;对于一个目标,但我想为所有目标设置它,而不是为每个目标设置它。有相当于 set_target_properties 的吗?对于所有目标(包括子项目)?例如:

set_target_properties(alltargets
    PROPERTIES
    INSTALL_RPATH "/opt/my/lib;/other/lib"
)

最佳答案

片段:

# note: macOS is APPLE and also UNIX !
if(APPLE)
  set_target_properties(foo PROPERTIES
    INSTALL_RPATH "@loader_path;@loader_path/...")
elseif(UNIX)
  set_target_properties(foo PROPERTIES
    INSTALL_RPATH "$ORIGIN:$ORIGIN/...")
endif()

相关CMake变量:

相关 CMP:

关于cmake - 如何设置 CMAKE_INSTALL_RPATH 多个目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69308217/

相关文章:

linux - 大师们说 LD_LIBRARY_PATH 不好——有什么选择?

linux - 未使用功能的链接器错误 : When do they occur?

c - 获取库中使用的库列表

ios - iOS-如何使用现有动态库(.so文件)

c++ - CMake:不支持的 GNU 版本 -- 不支持高于 8 的 gcc 版本

c++ - 如何从其他目录树将源文件包含到 Bool.Test 用例中?

c++ - 在 FreeBSD 上构建 lxml 示例时未定义对 glib 的引用

c++ - 当其他库仍在使用时如何删除动态库中的指针

c++ - cmake os x 失败 ar 没有特定的存档成员

c++ - 使用 Cmake 在 Mac 上的 VTK 配置问题