不同的 link 并使用 cmake 加载库路径

different link and load library paths using cmake

我有同一个库的两个版本 libabc.so,我必须 link 我的程序到一个版本,并在执行时加载另一个版本(当可执行文件 link 时,加载程序应该加载另一个库=19=]).

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

希望我说清楚了,谢谢。

@Tsyvarev 的评论基本给出了答案,这里再详细一点。

假设 link 和负载的两个版本放在 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