首页 > 其他分享 >Cmake之 target_include_directories

Cmake之 target_include_directories

时间:2023-06-13 19:45:11浏览次数:53  
标签:Cmake target directories 路径 添加 头文件 include

target_include_directories 是 CMake 中用于指定目标(target)的头文件搜索路径的命令。 它的语法如下:

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

 

 

其中,`target` 是目标名称,可以是库或可执行文件的名称。 `SYSTEM` 表示这些头文件是系统头文件,`BEFORE` 表示这些路径将被添加到其他路径之前。`INTERFACE`、`PUBLIC` 和 `PRIVATE` 是指定这些路径的可见性。它们的含义如下: - `INTERFACE`:这些路径只会被添加到目标的接口中,不会被添加到目标自身的编译选项中。 - `PUBLIC`:这些路径会被添加到目标自身的编译选项中,同时也会被添加到目标的接口中。 - `PRIVATE`:这些路径只会被添加到目标自身的编译选项中,不会被添加到目标的接口中。 `items` 是头文件搜索路径,可以是绝对路径或相对路径。如果是相对路径,会相对于当前 CMakeLists.txt 文件所在的目录进行解析。     用法:
function(my_include_public)
  target_include_directories(${CURRENT_LIBRARY} PUBLIC ${ARGN})
endfunction()

function(my_include_private)
  target_include_directories(${CURRENT_LIBRARY} PRIVATE ${ARGN})
endfunction()

function(my_include_interface)
  target_include_directories(${CURRENT_LIBRARY} INTERFACE ${ARGN})
endfunction()

 

 

标签:Cmake,target,directories,路径,添加,头文件,include
From: https://www.cnblogs.com/merlindu/p/17478570.html

相关文章

  • C/C++ include 头文件的语句中,双引号和尖括号的区别
    #include指令有两种使用形式#include<stdio.h>文件名放在尖括号中#include“mystuff.h”文件名放在双引号中 双引号"xxx.h",表示编译器先在用户的工作目录下搜索头文件,如果搜索不到则到系统默认目录下去寻找,所以双引号一般用于包含用户自己编写的头文件。如:#include"stu......
  • cmake设置gcc将shared library 改为生成 executeable
    前文ubuntu下,同一份代码,使用gcc和clang编译结果不相同。gcc编译结果,生成的程序为type为sharedlibary,而clang编译生成的程序的type为executeable.解决方案为cmakelists.txt脚本增加如下脚本set(CMAKE_CXX_FLAGS"-no-pie")set(CMAKE_C_FLAGS"-......
  • CMake学习
    参考前言-《CMake菜谱(CMakeCookbook中文版)》-书栈网·BookStackTheArchitectureofOpenSourceApplications(Volume1)CMake(aosabook.org)CMakeReferenceDocumentation—CMake3.26.4DocumentationCMake从入门到精通-凌逆战-博客园(cnblogs.com)Ubun......
  • ubuntu 搭建 cmake + vscode 的 c/c++ 开发环境
    todo列表clang-formatc++整合软件安装略基本的环境搭建最基本的vscode插件只需要安装如下两个插件即可c/c++扩展是为了最基本的代码提示和调试支持cmakelanguagesupport是为了提示CMakeLists.txt脚本有可能安装了cmakelanguagesupport还是没有代码......
  • 一次windows下使用cmake遇到的问题
    背景在windows下的cmake和mingw提供的make,在windows环境下进行了简单尝试,结果发现make的时候失败:#include<iostream>intmain(){std::cout<<"Hello,makefile."<<std::endl;return0;}CMakeList如下:project(test)add_executable(testtest.cpp)非常......
  • cmake
    cmake_minimum_required(VERSION3.4.1)##---指定cmake的最小版本set(TARGETwenet)##---将字符串wenet副给TARGETproject(${TARGET}CXX)##---指定工程名字,和语言,cxx代表c++set(CMAKE_CXX_STANDARD14)##---include(ExternalProject)##--CMAKE_SOURCE_DIR工程顶层目录include_d......
  • 双笙仔佯谬_小彭老师_CMake课程笔记
    目录CMake第三方库可以configure,install等CMake可以通过-D选项设置编译器和cpp版本cmake-Bbuild-DCMAKE_CXX_COMPILER=/usr/bin/gcc-6可以指定使用gcc-6编译cmake-Bbuild-DCMAKE_CXX_STANDARD=14用c++14版本使用add_libaray生成动态链接库或静态链接库add_liba......
  • Ubuntu升级Cmake的正确方式
     Ubuntu升级Cmake的正确方式某些软件包编译时需要高版本的Cmake,因此需要升级Cmake。不能使用sudoapt-getremovecmake卸载低版本cmake后再重装高版本,这样做会导致之前编译和安装的很多库一起被卸载!!! 正确步骤是:去https://cmake.org/files/下载所需版本的源码。也可......
  • CMakeLists.txt 编写模板
     新建文件  CMakeLists.txt #设置cmake的最低版本cmake_minimum_required(VERSION2.8)#指定为C++11版本set(CMAKE_CXX_STANDARD11)#设置工程名称project(wss)message(${PROJECT_SOURCE_DIR})set(SRC_LIST${PROJECT_SOURCE_DIR}/src/websocket_s......
  • [ACTF2020 新生赛]Include 1 做题笔记
     点开tips 打开源代码看看 没发现什么信息,试试构造?file=php://filter/read=convert.base64-encode/resource=flag.php 得到base64,试着解码 得到flag......