C++学习(二六五)link_libraries和target_link_libraries

本文详细介绍了CMake中link_libraries和target_link_libraries两个指令的用法和区别。link_libraries通常用于链接静态库,而target_link_libraries适用于链接导入库,特别是动态库的隐式调用。target_link_libraries指令需要在add_executable或add_library之后使用,并且其特点是库依赖项会传递,当一个目标链接到另一个目标时,链接的库也会出现在另一个目标的链接线中。理解这两个指令的正确使用对于CMake构建过程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,link_libraries用在add_executable之前,target_link_libraries用在add_executable之后

2,link_libraries用来链接静态库,target_link_libraries用来链接导入库,即按照header file + .lib + .dll方式隐式调用动态库的.lib库

 

target_link_libraries(<target> [item1] [item2] [...]
[[debug|optimized|general] <item>] ...)

上述指令中的<target>是指通过add_executable()和add_library()指令生成已经创建的目标文件。而[item]表示库文件没有后缀的名字。默认情况下,库依赖项是传递的。当这个目标链接到另一个目标时,链接到这个目标的库也会出现在另一个目标的连接线上。这个传递的接口存储在interface_link_libraries的目标属性中,可以通过设置该属性直接重写传递接口。

 

 

 

CMake的指令"target_link_libraries"用于将一个或多个目标与一个或多个库文件进行链接。通过这个指令,我们可以将目标所需的库文件关联起来,以便在编译链接过程中正确地引用库函数。 具体用法如下: target_link_libraries(target_name library_name1 library_name2 ...) 其中,target_name是要与库文件关联的目标的名称,而library_name1、library_name2等是要链接的库文件的名称。 例如,如果我们想要将名为sample的目标与curl、glibm等库文件进行链接,可以使用以下指令: target_link_libraries(sample PUBLIC CURL::curl glib m) 在使用target_link_libraries指令时,我们可以通过定义Third_part_lib参数来指定每个第三方库的名称,具体的库名称可以在库的说明文档中找到。需要注意的是,在链接库文件之前,我们需要确保这些库文件已经正确地安装并可以被找到。 总结起来,CMake的target_link_libraries指令用于将目标与库文件进行链接,以便在编译链接过程中使用库函数。通过指定目标名称库文件名称,我们可以将它们关联起来,实现正确的链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++-Cmake指令:target_link_libraries](https://blog.csdn.net/u013250861/article/details/127939663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值