1、作用:
给源文件添加头文件搜索路径:将指定目录添加到编译器的头文件搜索路径之下,指定的目录被解释成当前源码路径的相对路径。

2、差别:
2.1、include_directories:
当前CMakeList.txt中的所有目标以及所有在其调用点之后添加的子目录中的所有目标将具有此头文件搜索路径。

2.2、target_include_directories:
指定目标包含的头文件路径。

3、用法:

3.1、include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 …])
例: include_directories(/usr1/dirs)

3.2、target_include_directories(<target> [SYSTEM] [AFTER|BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1…])
例: target_include_directories(target_so PUBLIC /usr1/dirs)

2.3、<INTERFACE|PUBLIC|PRIVATE>使用依据:
INTERFACE:target对应的头文件使用
PRIVATE:target对应的源文件使用
PUBLIC:target对应的头文件、源文件都使用

如果有不同目录相同名称的头文件会产生影响,所以这里建议针对特定的target进行添加头文件的操作,不要使用include_directories

4、参考资料:
cmake:target_** 中的 PUBLIC,PRIVATE,INTERFACE

include_directories和target_include_directories相关推荐

  1. [CMake] include_directories 和 target_include_directories

    参考这篇 文章 target_include_directories 的功能完全可以使用 include_directories 实现. include_directories(header-dir) ...

  2. cmake / target_** 中的 PUBLIC,PRIVATE,INTERFACE

    一.指令说明 target_include_directories():指定目标包含的头文件路径.官方文档 target_link_libraries():指定目标链接的库.官方文档 target_c ...

  3. clion安装glfw_MacOS上使用Clion配置Vulkan开发环境

    前言 学习图形学编程的时候,其实在MacOS的编程环境默认都是用Xcode,Windows又经常用Visual Studio.但是因为我经常要在Windows 和 MacOS上切换编程,偶尔还得跑到U ...

  4. as android.mk 变色,FFmpeg4Android:AS中使用NDK

    1 FFmpeg4Android:AS中使用NDK 1.1 用Android.mk编译.so step 1:创建AS项目MyDNK,新建JNIS类并写好native方法helloJNI(),如图: i ...

  5. [译] C++ 和 Android 本地 Activity 初探

    原文地址:Getting Started with C++ and Android Native Activities 原文作者:Patrick Martin 译文出自:掘金翻译计划 本文永久链接:g ...

  6. CMakeLists.txt详解

    一:CMakeLists.txt文件是cmake用来生成Makefile文件需要的一个描述编译链接的规则文件 学习cmake需要提前了解gcc等编译命令,先来解释一条最简单的命令 gcc ./sour ...

  7. cmake基础到实战

    cmake从基础到实战 前言 当初对cmake也是怀有恐惧心理,但是想着总要学会,便花了一个周末时间带着问题去查资料,在解决问题中也算是对cmake入门了. 有很多事情都是有个大概的想法就要开始做,不 ...

  8. cmake(二十七)Cmake中target再理解

    cmake翻译手册详解 cmake FAQ问题 一    目录结构 ++++++++++++++目录结构-->'最佳实践'++++++++++++++1)对于一个优秀的程序员而言,不仅仅是'编写 ...

  9. CMake常用变量和指令

    通过一个或多个CMakeLists.txt文件来控制CMake项目,CMakeLists.txt中包含一系列命令来描述需要执行的构建. 1. CMake语法 CMakeLists.txt中的指令格式是 ...

最新文章

  1. json省市区城市级联
  2. 颜色代码对照表、网页颜色选择器
  3. Java中getResourceAsStream的用法小结
  4. javap分析字符串拼接执行流程
  5. 强化学习(part1)--概述
  6. java 应用程序无法运行_关于解决浏览器无法运行小应用程序问题
  7. spring batch_Spring Batch作为Wildfly模块
  8. ubuntu14.04安装git
  9. shell实现自动部署两台tomcat项目Ⅱ
  10. maven依赖的版本管理
  11. 导航条UINavigtionBar,标签栏UITabBarController,抽屉MMDrawerController
  12. 英雄联盟lol鼠标突然不能a兵了
  13. 学计算机的话美国社区大学对应课程,美国加州社区大学转UC伯克利计算机专业有什么课程上的要求?...
  14. c语言程序 计算离高考天数,用c++程序计算一个孩子从出生到高考需要多少天
  15. PE系统与U盘启动工具的推荐
  16. 钟薛高为啥突然卖3-4元的雪糕?
  17. 聚合支付:将支付宝、微信、qq钱包三码收款码合而为一
  18. 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)
  19. Camera | 2.MIPI、CSI基础
  20. 静态方法vs非静态方法

热门文章

  1. 向外张扬的人在做梦,向内审视的人才最清醒
  2. php实现阿拉伯数字转为银行数字大写
  3. 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据
  4. rk3568 Linux 网络唤醒
  5. 如何建立Github Pages自己的博客
  6. Ubuntu16.04安装deb包
  7. Processing——A Music Game for the Avengers
  8. jquery库(jquery库)
  9. android 修改系统权限 WRITE_SETTINGS
  10. 教你如何用ps美白祛斑