CMake的几种Include

CMake的几种Include

include_directories()
target_include_directories()
add_executable( xx.cpp     xx.h)

这三种方式都可以对当前项目添加引用路径。

include_directories()

include_directories()的影响范围最大,可以为CMakelists.txt后的所有项目添加头文件目录

一般写在最外层CMakelists.txt中影响全局

target_include_directories()

target_include_directories()的影响范围可以自定义。如加关键子PRIVATE或这PUBLIC。

一般引用库路径使用这个命令,作为外部依赖项引入进来,target是自己项目生成的lib。
如:

project(myLib)
target_include_directories(myLib PRIVATE ${OpenCV_Include_dir}

我们将${OpenCV_Include_dir}头文件库路径添加到了myLib项目

add_executable()

add_executable( )中添加的引用路径一般是当前目录下的源文件对应的头文件。是生成项目时引入的头文件。

这种方式一般用于自己写的或某项目需要的头文件,这种方式需要加添加文件名字,而非头文件目录
如:

project(addFunc)
add_executable(addFunc addFunc.h  addFunc.cpp)

嵌套头文件的引用问题。

在子项目中,include的用法可以帮助当前环境找到头文件,但在外部的项目引用子项目时,子项目中的include的相关命令对外部项目无效,外部项目的引用只与他自己的include命令相关,因此,在子项目中的源文件中尽量使用绝对路径的文件。且在子项目的CMakeLists中尽量不要使用include_directories,因为它只针对子项目,外部项目没接受到include的文件,就会报引入错误。
如:
错误示范:
子项目:
include_directories(“…/OrthophotoCU”)
源文件:
#include “global.h”
正确示范:
子项目:不加引入路径
源文件:
#include “…/OrthophotoCU/global.h”
这样外部项目引入子项目时,就可以根据子项目的路径找到相对位置的头文件了。如果是错误情况,引入了子项目头文件,在子项目的相对路径下没有"global.h"。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值