指令:add_link_options("LINKER:-rpath-link,${THIRD_LIBS_DIR}")
THIRD_LIBS_DIR:需要链接的库的目录
作用:编译生成一个可执行文件时,依赖一个动态库A,动态库A同时又依赖动态库B.如果我们没有显示集成动态库B时,链接器会去-rpath-link设置的目录中寻找依赖项。
例子:
1.库A,依赖库B
cmake_minimum_required(VERSION 3.9) project(alib) add_library(A SHARED a.cpp) target_link_libraries(A B)
2.程序test,依赖库A
cmake_minimum_required(VERSION 3.9) project(test)#add_link_options("LINKER:-rpath-link,${B_PATH}")
add_executable(test test.cpp) target_link_libraries(test A)
如上,编译时会提示找不到库B。类似于这种:
可以通过加上add_link_options("LINKER:-rpath-link,${B_PATH}"),指定B的位置。也可以直接把库B放到库A的同级目录下。
标签:rpath,LINKER,编译,add,报错,test,link From: https://www.cnblogs.com/linxisuo/p/17486196.html