include_directories和target_include_directories

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

include_directories和target_include_directories 的相关文章

  • Rust 使用 vs mod?

    我正在努力解决这些问题 use宣言 A 使用声明创建一个或多个与其他路径同义的本地名称绑定 通常 一个use声明用于缩短引用模块项所需的路径 这些声明可能出现在模块和块中 通常位于顶部 And mod item A 模块项是一个模块 用大括
  • 记录 C 中“.h”文件使用模式的良好参考资料是什么? [复制]

    这个问题在这里已经有答案了 C 接口和实现 展示了一些有趣的数据结构使用模式 但我确信还有其他模式 http www amazon com Interfaces Implementations Techniques Addison Wesl
  • 如何通过 CMake 查找特定/本地文件

    我对本地安装的库有疑问 在我的项目中有 xmlrpc 0 7 library myproject xmlrpc 0 7 src 如果没有找到 我希望 CMake 使用本地 xmlrpc 0 7 目录进行回退 有两个问题 第一个问题 find
  • <%@ page pageEncoding="UTF-8"%> 从另一个 jsp 包含时被忽略

    我有代码 现在在github https github com Utumno ted2012 tree GitHub2 WebContent WEB INF jsp include like my jsp 通用 jsp 我所有的 jsp 或
  • Zk如何通过id到达包含的.zul页面组件?

    我无法通过包含的 zul 页面中的 id 访问组件 我有一个带有控制器的 main zul 我需要通过 java 控制器类获取包含的 zul 页面中的一个组件 但它返回 null 我知道包含的方法会创建新的 id 空间 但是有什么方法可以获
  • 项目参考条件包含多个条件

    这是我的 csproj 文件的片段
  • 编译器如何知道在哪里可以找到#include

    我想知道 Mac OS X Windows 和 Linux 上的编译器如何知道在哪里可以找到 C 头文件 具体来说 我想知道它如何知道在哪里可以找到带有 lt gt 括号 include Users Brock Desktop Myfile
  • 使用 CakePHP 将视图嵌入到另一个视图中

    我有一个新闻控制器 每个新闻项目都有一个 查看 操作 在每个新闻项目的 查看 操作中 我想包含另一个视图 即评论控制器的 添加 操作 基本上 我需要在每个新闻项目的页面上添加一个表单来添加评论 我有两种观点 但我无法将它们联系起来 我尝试使
  • Xcode 4 中我的目标在哪里?

    在 Xcode 3 中 我在左栏中有一个目标列表 他们已经不在了 方案下拉列表中有一个列表 但我在其他地方找不到它们 他们改名为 计划 了吗 点击如下图按钮
  • 这个符号在 IntelliJ 中意味着什么? (文件名左下角红色圆圈,里面有“J”)

    在我创建的 Java 项目的 IntelliJ 的目标文件夹下 包中有一些 java 源文件 每个文件旁边的 J 图标都有一个红色圆圈 中间有一条线 这意味着什么 我如何解决它 您需要指定源目录 File gt Project Struct
  • PHP 包含最佳实践问题

    我一直在学习 PHP 语法并进行练习 我有 NET 背景 因此母版页总是让我在处理页眉和页脚时变得非常简单 到目前为止 我有一个 mainHeader php 和 mainFooter php 其中有我的头部菜单和页脚 html 我创建了一
  • 具有多个目标的 Objective C 到 Swift 头文件

    我通过 import 语句成功从 Objective C 调用我的 Swift 类 对于目标 MyApp import MyApp Swift h 我现在创建了一个名为 MyAppLite 的新目标 当我编译新目标时 出现错误 因为代码需要
  • 本地#includes

    有没有某种方法可以在本地 include 标准内容 一次针对一个函数 一个类等 而不是全局的 举一个非常简单的例子 人们可能想使用 std string 但它只在一个类中需要 并且您不希望它的开销无处不在 而不是制作 include本地 您
  • 如何在项目中实现预编译头

    我了解预编译头背后的目的和推理 然而 实施时有哪些规则呢 根据我的理解 事情是这样的 将您的项目设置为使用带有 YU 指令的预编译头 创建 stdafx h 文件并将其设置为预编译头 将此作为每个 h 文件中的顶部包含语句 这是正确的吗 您
  • 同一应用程序的不同目标的替代字符串 - 使用 NSLocalizedString?

    我正在构建一个已经发布的应用程序的版本 但有一些更改 这并不完全是精简版 完整版的关系 但它们足够相似 以至于我在不同的目标上使用相同的项目 我想将我在第一个版本中使用的几乎所有字符串重写为新版本 并且想知道解决此问题的最佳方法 我考虑使用
  • Ant 条件 - 'if' 或 'unless' 哪个先出现

    Question 如果 ant 目标同时使用if and unless 首先评估哪个 Example 先有鸡还是先有蛋
  • android在picasso加载后获取Drawable图像

    我正在使用 Picasso 库从 url 加载图像 我使用的代码如下 Picasso with getContext load url placeholder R drawable placeholder error R drawable
  • 编译器处理包含保护头的开销有多大?

    为了加速大型源文件的编译 修剪翻译单元中使用的标头数量是否更有意义 或者编译代码的成本是否远远超过处理包含保护的时间标头 如果后者是真的 那么工程工作最好花在创建更多 轻量级的标头上 而不是更少 那么 现代编译器需要多长时间才能处理有效包含
  • “以下对象被‘package:xxx’屏蔽”是什么意思?

    当我加载包时 我收到一条消息 The following object is masked from package xxx 例如 如果我加载testthat http www rdocumentation org packages tes
  • PHP include():文件大小和性能

    一个没有经验的PHP问题 我有一个 PHP 脚本文件 我需要在不同页面的很多地方多次包含该文件 我可以选择将包含的文件分解为几个较小的文件 并根据需要包含这些文件 或者 我可以将它们全部保存在一个 PHP 文件中 我想知道在这种情况下使用较

随机推荐

  • osg--读写

    文件I O 命名规则 osgdb xxx 比如 osgdb osg osgdb jpeg 关联文件后缀和加载器 osgDB Registry instance gt addFileExtensionAlias jpeg jpeg osgDB
  • osg--几种效果

    billboards 适用于小草等的绘制 osg BillBoard继承自osg Geode 其下所有osg Drawable面向观察者 旋转行为通过setMode 设置 分别为 POINT ROT EYE 几何体z轴旋转到窗口y轴 POI
  • osg--提高效率

    多线程 OpenThreads Thread 虚函数 cancel run OpenThreads Mutex OpenThreads Barrier OpenThreads Condition 线程管理 GetNumberOfProces
  • torch在ubuntu16.04下的搭建(cuda9.0+cudnn7.0)

    希望外婆身体越来越好 参考 xff1a http blog csdn net chenhaifeng2016 article details 68957732 http www 52nlp cn E6 B7 B1 E5 BA A6 E5 A
  • LSTM文本分类(tensorflow)

    1 xff09 LSTM介绍 转载自https www csdn net article 2015 09 14 2825693 Gates xff1a 输入变换 xff1a 状态更新 xff1a 使用图片描述类似下图 xff1a 输入 首先
  • ArcMap安装与使用入门

    一 安装 https malagis com arcgis 10 4 full ios download html from 61 singlemessage amp isappinstalled 61 0 二 使用 1 添加数据 2 新建
  • srtm数据格式.hgt读取

    srtm数据格式 hgt读取 转载自https librenepal com article reading srtm data with python python读取 import os import json import numpy
  • Unity Pahfinding 插件中直接用RVOController来移动角色

    span class token keyword using span UnityEngine span class token punctuation span span class token keyword using span Sy
  • gdal用法总结

    USAGE OF GDAL RASTER API Import gdal from osgeo import gdal Open the file Dataset gdal Open filename Getting dataset inf
  • C语言中的__FILE__、__LINE__和__func__等预定义跟踪调试

    标准C语言预处理要求定义某些对象宏 xff0c 每个预定义宏的名称一两个下划线字符开头和结尾 xff0c 这些预定义宏不能被取消定义 xff08 undef xff09 或由编程人员重新定义 下面预定义宏表 xff0c 被我抄了下来 LIN
  • Linux中的动态库和静态库(.a.la.so.o)

    Linux中的动态库和静态库 a la so o 原文地址 xff1a https www cnblogs com findumars p 5421910 html 在windows下 xff0c 一般可以通过文件的后缀名来识别文件的类型
  • C++继承中的同名覆盖问题

    1 同名覆盖的理论关键 xff1a 继承中同名覆盖问题的核心知识点 xff1a 作用域问题 xff0c 例子 xff1a span class token keyword int span a span class token punctu
  • 链表问题技巧:使用伪头节点

    小技巧 xff1a 对于链表问题 xff0c 创建头节点时不知道合适的节点值 xff0c 因此通常需要先初始化一个预先指针 伪头节点 pre xff0c 该指针的下一个节点指向真正的头结点head 使用预先指针的目的在于链表初始化时无可用节
  • STL自定义排序函数:sort()函数;priority_queue,set,map等容器排序函数

    1 sort 函数自定义排序 xff1a 1 1 sort 模板原型 xff1a 1 1 1 默认模板 xff1a 利用 lt 比较 xff0c 升序排列 span class token keyword template span spa
  • 大数求余:即答案对1e9+7(1000000007)取模原因、方法总结

    1 大数求余原因 xff1a 大数越界 大数越界 xff1a 随着n增大 xff0c f n 会超过Int32甚至Int64的取值范围 xff0c 导致最终的返回值错误 当一个问题只对答案的正确性有要求 xff0c 而不在乎答案的数值 xf
  • 回车与换行的区别

    回车与换行的区别 xff1a 1 两个控制字符的介绍 以前打字机中 xff0c 每行后面加两个表示结束的字符 一个叫做 回车 return xff08 r xff09 xff0c 告诉打字机把打印头定位在左边界 xff1b 另一个叫做 换行
  • -1的原码、反码、补码(0xff)

    1的表示 1 0xff的无符号数为255 xff0c 当作为有符号数显示则为 1 2 1的原码表示为1001 xff1b 除符号位取反得反码 xff1a 1110 xff1b 加1得补码 xff1a 1111即0xff 3 负数在计算机中用
  • C++头文件包含(2):cpp多次包含同一头文件,会有什么问题?头文件保护

    1 目录结构 xff1a span class token operator span base span class token operator span main main span class token punctuation s
  • Go语言学习之读文件

    三种方式读取文件 span class token keyword package span main span class token keyword import span span class token punctuation sp
  • include_directories和target_include_directories

    1 作用 xff1a 给源文件添加头文件搜索路径 xff1a 将指定目录添加到编译器的头文件搜索路径之下 xff0c 指定的目录被解释成当前源码路径的相对路径 2 差别 xff1a 2 1 include directories xff1a