C++-Cmake指令:target_link_libraries
admin
2024-02-03 09:04:05
0

target_link_libraries:该函数声明了链接时需要参与的依赖库名称或target。其名称可包含完整路径。

命名的必须是由add_executable()或add_library()之类的命令创建的。

target_link_libraries命令的格式:

target_link_libraries( ... ... ...)
target_link_libraries(  ... [ ...]...)

例如:

target_link_libraries(sample PUBLIC CURL::curl glib m)

注意:由于一个target中包含多个属性,一般情况下包含了头文件路径。所以使用target作为参数传入此函数时,无需调用 target_include_directories 再次声明添加头文件路径。

案例

target_link_libraries(PUBLIC target target1 target2)
target_link_libraries(PUBLIC target3 target target4)
  • PUBLIC:表示target能够使用target1&target2库中的内容,target3 能够使用target1 & target2中定义的内容;默认状态为PUBLIC;
target_link_libraries(PRIVATE target target1 target2)
target_link_libraries(PRIVATE target3 target target4)
  • PRIVATE:表示target能够使用target1&target2库中的内容,target3不能使用target1&target2中定义的内容,只能使用target中定义的内容;
target_link_libraries(INTERFACE target target1 target2)
target_link_libraries(INTERFACE target3 target target4)
  • 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);

#Cmake#__target_link_libraries函数的使用说明_caofolinzi的博客-CSDN博客

CMake教程系列-04-编译相关函数 - 知乎

CMake的add_library与target_link_libraries_物随心转的博客-CSDN博客

相关内容

热门资讯

青海:“五一”假期推出60余场... 中新网西宁5月6日电 (潘雨洁)记者6日从青海省商务厅获悉,“五一”假期,青海省各级商务部门、金融机...
银行业竞争逻辑正在经历一场变革 证券时报记者 马传茂 步入低利率时代,银行业关于“规模情结”的讨论持续发酵。一个耐人寻味的现象是:银...
基本面与新技术共振,锂电新周期... 5月国内电池排产达172.4GWh,环比增8%,同比猛增65%。另一边,钠电逻辑迎来里程碑:宁德时代...
曾是OpenAI前董事会成员!... 快科技5月7日消息,据媒体报道,日前,马斯克起诉了他的两位OpenAI联合创始人——CEO萨姆·奥特...
监护仪警报后,我们在做什么 杨明明 河北医科大学第一医院 在医院的病房、急诊室和ICU,监护仪的“滴滴”警报声是最常见的声音。很...
原创 美... 美股三大指数昨晚(当地时间5月5日)集体收涨,标普500和纳斯达克双双再创历史新高。 最惊人的一幕发...
华泰证券:地产板块估值筑底、配... 华泰证券研报指出,深圳、广州、武汉、苏州、济南等核心城市相继出台楼市优化政策,从公积金放宽、以旧换新...
第四批全国中成药联盟采购开标 ... 4月30日,第四批全国中成药联盟采购(以下简称“全国联采”)在武汉开标产生拟中选结果。本次集采纳入2...
跟踪800自由现金流的ETF有... 随着A股市场从估值修复转向盈利驱动,投资者对企业"真金白银"创造能力的关注度显著提升。自由现金流策略...
金价强势反弹,投资者怎么操作? 经历持续阴跌后,黄金市场迎来一轮强势反弹行情。 5月6日,国际金价短暂震荡后强势拉升。截至记者发稿,...
A股5月“开门红” 两市成交额... 科创50日K线图   张大伟 制图 ◎记者 费天元 5月首个交易日,A股主要股指全线上攻,盘面热点延...
首发|又一个核聚变独角兽:星环... 投资界获悉,星环聚能完成5亿元人民币A+轮融资,投资方阵容依旧豪华:包括达晨财智、金浦投资、上海申能...
为何翻倍提高CPU市场展望?苏... 财联社5月7日讯(编辑 史正丞)随着超威半导体(AMD)的最新财报再度唤起市场对CPU需求周期的关注...
“1页纸”让欧美亚股市大涨,油... 新华社援引美国媒体5月6日报称道,两名美国官员及另外两名知情人士透露,白宫认为,与伊朗接近达成一份一...
拟上市企业股权激励的注意事项 在企业的发展进程中,拟上市企业的股权激励是一个至关重要的环节。它不仅能够吸引和留住核心人才,还能激发...
5月7日每日研选丨基本面与新技... 5月国内电池排产达172.4GWh,环比增8%,同比猛增65%。另一边,钠电逻辑迎来里程碑:宁德时代...
美股收盘:纳指、标普再创新高 ... 财联社5月7日讯(编辑 史正丞)昨夜今晨,随着AI相关资产接力暴涨,标普500指数和纳斯达克指数连续...
美联储古尔斯比就通胀与消费者行... 芝加哥联邦储备银行行长奥斯滕・古尔斯比对通胀形势发出谨慎警示:美国通胀不仅未能持续回落至美联储 2%...
原创 北... 实验室里长出的,不只是论文还有独角兽。 又是一年五四,北大迎来了128岁生日。 未名湖畔的故事讲了...