cmakelists.txt多文件编译怎么写
时间: 2023-07-14 15:03:17 浏览: 136
C++版本使用CMakeLists.txt编译(不同目录多个源文件)可执行文件
### 回答1:
CMake是一个跨平台的构建工具,用于帮助开发者生成各种不同编译工具的构建脚本。在编写CMakeLists.txt文件时,可以使用多个源文件进行编译。
首先,在CMakeLists.txt文件中使用`add_executable`或`add_library`命令来指定生成的可执行文件或库文件的名称,并将其与源文件关联起来。
例如,如果我们有两个源文件main.cpp和helper.cpp,我们可以这样写:
```cmake
cmake_minimum_required(VERSION 3.12)
project(MyProject)
add_executable(MyExecutable main.cpp helper.cpp)
```
这个例子中,我们使用`add_executable`命令来生成一个名为MyExecutable的可执行文件,并将main.cpp和helper.cpp这两个源文件与之关联。
如果我们的项目中有更多的源文件,我们可以继续在`add_executable`或`add_library`命令后面继续添加源文件的名称。
```cmake
add_executable(MyExecutable main.cpp helper.cpp file1.cpp file2.cpp)
```
当我们构建项目时,CMake会自动将这些源文件编译成目标文件,并链接到生成的可执行文件或库文件中。
此外,如果项目中有多个文件夹,并且每个文件夹中都有一些源文件,可以使用`add_subdirectory`命令将这些文件夹添加到构建过程中。
```cmake
add_subdirectory(folder1)
add_subdirectory(folder2)
```
这样可以让CMake在构建过程中进入这些文件夹并执行相应的CMakeLists.txt文件。
总结起来,CMakeLists.txt文件中的多文件编译可以通过`add_executable`或`add_library`命令与源文件进行关联,以及使用`add_subdirectory`命令将多个文件夹添加到构建过程中。
### 回答2:
cmakelists.txt是用于配置CMake编译和构建项目的脚本文件,它使用简单的语法来描述项目的文件结构和依赖关系。如果需要编译多个源文件,可以按照以下步骤编写CMakeLists.txt:
1. 设置项目名称和最低CMake版本:
```cmake
cmake_minimum_required(VERSION 3.10)
project(MyProject)
```
2. 添加源文件到项目中,可以使用SET命令将需要编译的源文件路径存储在变量中:
```cmake
set(SOURCES src/main.cpp src/other.cpp)
```
3. 添加可执行文件目标,并将源文件与目标进行关联:
```cmake
add_executable(MyExecutable ${SOURCES})
```
4. 如果需要链接外部库,可以使用target_link_libraries命令来指定链接的库:
```cmake
target_link_libraries(MyExecutable MyLibrary)
```
完整示例CMakeLists.txt文件:
```cmake
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(SOURCES src/main.cpp src/other.cpp)
add_executable(MyExecutable ${SOURCES})
target_link_libraries(MyExecutable MyLibrary)
```
以上是最基本的多文件编译的CMakeLists.txt的编写方式,根据实际项目需求,还可以添加更多的配置选项和设置,例如编译选项、包含路径、链接库等。具体的写法会因项目而异。
阅读全文