使用 cmake 的不同链接和加载库路径

different link and load library paths using cmake

本文关键字:加载 路径 链接 cmake 使用      更新时间:2023-10-16

我有两个版本的同一个库libabc.so,我必须将我的程序链接到一个版本,并在执行时加载另一个版本(加载器应该在可执行文件运行时加载另一个库(。

我将两个版本放在不同的路径中,如何使用 cmake 指定?

我希望我已经说清楚了,谢谢。

@Tsyvarev的评论基本上给出了答案,这里有更多细节。

假设链接和加载的两个版本放在link_path/libabc.soload_path/libabc.so中,CMakeLists.txt应该是这样的

...
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH load_path;${CMAKE_INSTALL_RPATH})  # load path
...
target_link_libraries(xxx link_path/libabc.so)  # link path