我有两个版本的同一个库add
,我必须将我的程序链接到一个版本,并在执行时加载另一个版本(加载程序应该在运行可执行文件时加载另一个库)。
我将两个版本放在不同的路径中,如何使用cmake指定?
我希望我已经说清楚了,谢谢。
答案 0 :(得分:0)
@ Tsyvarev的评论基本上给出了答案,这里有更多细节。
假设链接和加载的两个版本放在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