首页 > 其他分享 >CMakeListx.txt --- include_directories和target_include_directories命令

CMakeListx.txt --- include_directories和target_include_directories命令

时间:2024-05-04 14:33:25浏览次数:19  
标签:... 头文件 target directories 命令 include

1. include_directories

语法

include_directories ([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])

作用

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

参数

默认情况下,include_directories命令会将目录添加到列表最后,可以通过命令设置CMAKE_INCLUDE_DIRECTORIES_BEFORE变量为ON来改变它默认行为,将目录添加到列表前面。也可以在每次调用include_directories命令时使用AFTER或BEFORE选项来指定是添加到列表的前面或者后面。如果使用SYSTEM选项,会把指定目录当成系统的搜索目录。该命令作用范围只在当前的CMakeLists.txt。

2.target_include_directories

语法

target_include_directories(<target> [SYSTEM] [AFTER|BEFORE]
  <INTERFACE|PUBLIC|PRIVATE> [items1...]
  [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])

作用

该命令可以指定目标(exe或者so文件)需要包含的头文件路径,命名为 < target > 的命令必须是由 add _ executable ()或 add _ library ()之类的命令创建的,并且不能是 ALIAS 目标。

参数

PUBLIC:对内对外都公开,可将头文件目录以及链接库传递给连接者,target对应的头文件、源文件都使用。
PRIVATE:对内公开,对外不公开,不可传递头文件目录以及链接库,target对应的源文件使用。
INTERFACE:对外公开,对内不公开,可传递头文件目录以及链接库,但内部不可使用头文件及连接库,只能接口传递,target对应的头文件使用。

原文链接:https://blog.csdn.net/qq_26849933/article/details/127131908

 

使用 include_directories导入的头文件路径是全局的,而使用 target_include_directories导入的头文件路径则是保存在target中,其它模块需要使用时,引入此target即可。

标签:...,头文件,target,directories,命令,include
From: https://www.cnblogs.com/linxisuo/p/18172276

相关文章

  • Ubuntu/Linux系统中的multi-user.target
    相关:https://www.cnblogs.com/devilmaycry812839668/p/17999041multi-user.target是Linux系统中systemd的一个目标。它表示系统已完成引导过程,并准备好供多个用户登录和使用系统。该目标通常包括在多用户环境中进行正常系统操作所需的服务和资源。RunLvlTargetU......
  • C++ include头文件引入规则
    include引入头文件规则语法定义C++中include关键字用于引入其他头文件。在程序处于预处理阶段时,会将目标引入的头文件的内容添加该指令的位置。引入语法见如下2种方式://语法1#include<example_header1>//语法2#include"example_header2"语法1会搜索由example_header......
  • WPF pass event method to viewmodel via Interaction:CallMethodAction,TargetObject
    <Windowx:Class="WpfApp71.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • vscode debug: #include errors detected. Please update your includePath
    比如说文件树如下-src-x.cpp-x.hpp那么在x.cpp中直接#include"x.hpp"是没问题的,因为这个按相对路径来说可以直接搜到 但是如果文件树如下-src-x.cpp-head-x.hpp由于x.cpp和x.hpp不在同一个文件夹下,所以需要按相对路径如下#include".......
  • Electron打包的时候路径出现问题!include: could not find: "C:\Users\xxxx\AppDat
    !include:couldnotopenfile:"C:\ztg\projects\electron-vite-vue-ts\node_modules\.pnpm\[email protected][email protected][email protected]_dmg-bui_lrspnoputfiosacwyigcypdbdi\node_modules\app-builder-lib\t......
  • LFI to RCE [NewStarCtf]Include
    记录一个没见过的RCE类型题目。先看源码:点击查看代码<?phperror_reporting(0);if(isset($_GET['file'])){$file=$_GET['file'];if(preg_match('/flag|log|session|filter|input|data/i',$file)){die(&#......
  • dotnet 修复多框架 TargetFrameworks 包含不受支持平台导致构建失败
    本文将告诉大家如何修复dotnet项目里的多框架TargetFrameworks如果包含了当前系统无法支持的平台时,如何进行跳过。解决在Linux平台构建时提示MacCatalyst不受支持而构建失败故事的背景是我期望在GitHub的Action里面构建一个项目,我期望能够在Windows和Linux和Ma......
  • Visual Studio Code 检测到#include 错误,请更新includepath。已为此翻译单元 禁用波
    以上问题的出现是因为visualstudiocode的环境没有配置好在界面中按ctrl+shft+p输入Cconfiguration选择上图蓝色框 在上面红色框填上正确的路径(如果没有这个路径要在https://sourceforge.net/projects/mingw-w64/下载MinGW,具体操作b站有可以去看看照着下载)因为用的是c......
  • SkeletalMesh之MorphTargets技术
    利用变形目标(MorphTargets)可以将网格体从基础形状变为目标形状。通常它们将作为动画系统的一部分与SkeletalMesh一同使用。 导入含有MorphTargets数据的SkeletalMesh 预览SkeletalMesh的MorphTargets效果 在AnimationSequence中添加MorphTarges数值的控制  ......
  • #include <windows.h> 无法打开源文件windows.h
    问题描述原因是之前清C盘的时候把WindowsSDK给卸了,这样的话在应用程序里就搜不到Windowssoftwaredevelopmentkit(下图是下回来后) 打开这个路径C:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.10240.0(版本号可能不同)下面也没有um文件夹只有ucrt文件夹windows.h通常......