一、概述 在C++项目比较大或者要根据不同的规则生成不同的执行文件或者动态库/静态库的时候。单独的CMakeLists.txt会变的比较复杂,此时可以利用CMakeLists.txt的父子关系分目录分模块的进行编译及输出。 就相当于项目模块化编译 参考博客:【大丙课堂】 二、具体实现 1.dem
add_executable(app1 main1.cpp) src/app2/CMakeLists.txt cmake # 指定生成目标 add_executable(app2 main2.cpp) 每个子目录的CMakeLists.txt文件中,我们使用`add_executable`指令来指定生成的可执行文件名和所需的源文件。
1.3 编译测试 在当前目录执行cmake指令: cmake . 1. cmake后面的点,用来告诉CMake工具在当前目录中搜寻CMakeLists.txt文件。 自动生成makefile文件之后,再使用make指令编译源码: make 1. 最后可以看到程序的运行结果。 2 多组文件的情况 再来看下面这种情况:除了main.c以外,还多出来两组源文件(sum.c+sum.h...
在创建目标的时候直接指定源文件 add_executable(mainmain.cpp) 先创建目标,再添加源文件 add_executable(main)target_sources(main PUBLIC main.cpp) 多个.cpp源文件的情况 . ├── CMakeLists.txt├──main.cpp├── other.cpp└── other.h 使用target_sources直接添加 逐个添加即可: add_executable(main...
1、同一目录,多个源文件 CMake实战一只有单个源文件,现在把add函数写入myMath.cpp的源文件里面,声明放到myMath.h源文件里面 工程树状图如下: demo2/ ├── CMakeLists.txt ├── main.cpp ├── myMath.cpp └── myMath.h 这个时候,CMakeLists.txt 可以改成如下的形式: ...
在Linux下使用CMake编译多个源文件的C++程序时,CMakeLists.txt文件的编写是关键步骤。以下是一个详细的指南,包括CMakeLists.txt的基本结构、如何将多个源文件添加到CMakeLists.txt中、具体的CMakeLists.txt样例、如何设置CMake编译目标,以及执行CMake构建过程的命令。 1. CMakeLists.txt的基本结构 CMakeLists.txt文...
1、同一目录,多个源文件 CMake实战一只有单个源文件,现在把add函数写入myMath.cpp的源文件里面,声明放到myMath.h源文件里面 工程树状图如下: demo2/ ├── CMakeLists.txt ├── main.cpp ├── myMath.cpp └── myMath.h 这个时候,CMakeLists.txt 可以改成如下的形式: ...
首先创建一个CMakeLists.txt: cmake_minimum_required(VERSION 3.0) include(test.cmake) 1. 2. 在同目录下创建文件test.cmake: set(var "ABC") macro(Moo arg) message("arg = ${arg}") set(arg "abc") message("# After change the value of arg.") ...
PROJECT_SOURCE_DIR:工程的根目录 PROJECT_BINARY_DIR:运行 cmake 命令的目录,通常是 ${PROJECT_SOURCE_DIR}/build PROJECT_NAME:返回通过 project 命令定义的项目名称 CMAKE_CURRENT_SOURCE_DIR:当前处理的 CMakeLists.txt 所在的路径 CMAKE_CURRENT_BINARY_DIR:target 编译目录 CMAKE_CURRENT_LIST_DIR:CMakeList...