modern cmake:cmake 3.x版本的一些用法

内容:待细化

简单来说,3.x版本的cmake以target为核心,当用target_link_libraries/target_include_directoires这种命令时,如果指定flag为PUBLIC/INTERFACE, 会设置当前target的一些属性(target类似一个对象,而各种target_include_directoires…命令就相当于成员函数,对当前target产生一些副作用),当其他程序需要依赖当前target时,只需要target_link_libraries时把当前target link上就行了,不需要去include当前target的hpp/.h,因为当前target所有相关的头文件/依赖库都被target给包含了,所以三方程序直接target_link_libraries就好。

另,add_library(xxx, INTERFACE)不会编译出xxx库,而是会设置xxx库的一些属性,然后目标库就可以很简单的通过target_link_libraries(xxx)把xxx库所以来的东西都包含进来。相当于创建了一些xxx以及xxx依赖的各种文件/库的集合。

参考:

https://stackoverflow.com/questions/31969547/what-is-the-difference-between-include-directories-and-target-include-directorie

https://stackoverflow.com/questions/9339851/can-one-add-further-source-files-to-an-executable-once-defined

https://schneide.blog/2016/04/08/modern-cmake-with-target_link_libraries/

https://zhuanlan.zhihu.com/p/76975231(中文资料)
在这里插入图片描述
https://www.jianshu.com/p/55be9d4fc033(很好的中文资料,配合上面的基本就看懂了)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值