不同的 link 并使用 cmake 加载库路径
different link and load library paths using cmake
我有同一个库的两个版本 libabc.so
,我必须 link 我的程序到一个版本,并在执行时加载另一个版本(当可执行文件 link 时,加载程序应该加载另一个库=19=]).
我把两个版本放在不同的路径下,如何使用cmake指定?
希望我说清楚了,谢谢。
@Tsyvarev 的评论基本给出了答案,这里再详细一点。
假设 link 和负载的两个版本放在 link_path/libabc.so
和 load_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
我有同一个库的两个版本 libabc.so
,我必须 link 我的程序到一个版本,并在执行时加载另一个版本(当可执行文件 link 时,加载程序应该加载另一个库=19=]).
我把两个版本放在不同的路径下,如何使用cmake指定?
希望我说清楚了,谢谢。
@Tsyvarev 的评论基本给出了答案,这里再详细一点。
假设 link 和负载的两个版本放在 link_path/libabc.so
和 load_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