1.include_directories。该命令是用来向工程添加多个指定头文件的搜索路径,路径之间用空格分隔。因为main.c里include了testFunc.h和testFunc1.h,如果没有这个命令来指定头文件所在位置,就会无法编译。当然,也可以在main.c里使用include来指定路径. 2.add_subdirectory()这个命令可以向当前工程添加存放源文件的子目录,并...
-Ihello-world -Ihello-world/hello -Ihello-world/world ... 各级子目录中无需使用target_include_directories()或者include_directories()了。如果此时查看详细的编译过程(make VERBOSE=1)就会发现编译过程是一大坨,很不舒服。 当然了,在最终子目录的 CMakeLists.txt 文件中,使用include_directories()和target_in...
include指令一般用于语句的复用,也就是说,如果有一些语句需要在很多CMakeLists.txt文件中使用,为避免重复编写,可以将其写在.cmake文件中,然后在需要的CMakeLists.txt文件中进行include操作就行了。 include指令的结构为: include(<file|module> [OPTIONAL] [RESULT_VARIABLE ] [NO_POLICY_SCOPE]) 1. 2. 虽然,...
场景1:不使用include_directories包含子目录sub,直接在main.cpp里面包含"test.h"。 # CMakeList.txt cmake_minimum_required(VERSION 3.18.2)project(include_directories_test)add_executable(test main.cpp) //main.cpp#include"test.h"#include<stdio.h>intmain(intargc,char**argv){printf("hello, world!\...
include_directories(include) # 使用指定的源文件向项目添加可执行文件 add_executable(main src/main.cppsrc/test.cpp) 此处,构建所需的源文件除通过相对路径的方式逐个添加,还可以使用SRC变量指向src目录中的源文件,从而用SRC变量代替逐个列出的源文件:
当我们在写CMakeLists.txt文件时,常常会搞不明白link_directories, LINK_LIBRARIES, target_link_libraries这3者的区别,下面就其详细介绍: INCLUDE_DIRECTORIES(添加头文件目录) 它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。c和Java中用法类似)。
include_directories (include) add_executable (main ${SRC_LIST}) 同时,还要把src目录下的CMakeLists.txt删除。 动态库和静态库的编译控制 有时只需要编译出动态库和静态库,然后等着让其它程序去使用。让我们看下这种情况该如何使用cmake。首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ...
INCLUDE_DIRECTORIES([AFTER|BEFORE][SYSTEM]dir1 dir2...) [AFTER|BEFORE]:追加标志,指定控制追加或置前; [SYSTEM]:(笔者也不知道干嘛用的) dir1, …, dir n:添加的一系列头文件搜索路径; 向工程添加多个特定的头文件搜索路径,路径之间用空格分隔。类似于gcc中的编译参数-l,即指定编译过程中编译器搜索头文...
这里出现了一个新的命令:include_directories。 该命令是用来向工程添加多个指定头文件的搜索路径,路径之间用空格分隔。 因为main.c里include了testFunc.h和testFunc1.h,如果没有这个命令来指定头文件所在位置,就会无法编译。当然,也可以在main.c里使用include来指定路径,如下 ...
include_directories(header-dir)是一个全局包括,向下传递。 add_executable 添加可执行文件 例: add_executable(name $(SRC_LIST)) add_compile_options 由于不同的编译器支持不同的选项,这个命令的典型用法是在编译器特定的条件子句中。 target_link_libraries ...