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

时间:2017-02-09 03:11:02

标签: c++ path cmake linker load

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

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

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

1 个答案:

答案 0 :(得分:0)

@ 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