#Cmake#__target_link_libraries函数的使用说明
#Cmake#__target_link_libraries函数的使用说明参数声明常用方式作用域说明参数声明target_link_libraries:为target连接库的头文件路径(被link库生成CMakeLists.txt中定义的头文件路径)和对应定义的函数库路径target_link_libraries(<target><PRIVATE|PUBLIC|INTERFACE
·
参数声明
target_link_libraries:为target链接到对应的库。
target_link_libraries(<target>
<PRIVATE|PUBLIC|INTERFACE> <item>...
[<PRIVATE|PUBLIC|INTERFACE> <item>...]...)
target_link_libraries(target target1 target2)
target_link_libraries(target3 target target4)
PUBLI:表示target能够使用target1&target2库中的内容,target3 能够使用target1 & target2中定义的内容;默认状态为PUBLIC;
PRIVATE:表示target能够使用target1&target2库中的内容,target3不能使用target1&target2中定义的内容,只能使用target中定义的内容;
INTERFACE:表示target无法使用target1&target2的内容,但是target3 能够使用target1 & target2;
常用方式
- 经常的使用方式是target_link_libraries(target Third_part_lib),Third_part_lib参数,每个第三库会进行定义,具体的名称可以找到库的说明文档进行查看。
target_link_libraries(target ${OpenCV_LIBS})
作用域说明
target1:
#include “opencv”
cv::imwait(0);
target2:
#include “opencv”
cv::imwait(0);
cv::imwrite();
target4:
#include “opencv”
cv::imwait(0);
cv::imwrite();
target_link_libraries(target1 OpenCV)
target_link_libraries(target target1 target2)
target_link_libraries(target3 target target4)
target2和target4能使用imwait(0),但是不能使用imwrite(),除非在target2和target4的CMakeLists中添加target_link_libraries(target2/4 OpenCV);
更多推荐
已为社区贡献1条内容
所有评论(0)