cmake 文件应该怎么写
时间: 2024-09-16 11:03:52 浏览: 11
CMakeLists.txt文件是CMake项目管理和构建的核心文件,它定义了一个项目的结构、依赖项以及构建过程。CMakeLists.txt的基本结构通常包括以下几个部分:
1. **项目初始化**:首先,需要告诉CMake当前脚本的名称(CMAKE_MINIMUM_REQUIRED命令),以及项目的名称(PROJECT命令)。
```cmake
cmake_minimum_required(VERSION x.y)
project(MyProject)
```
2. **源文件和目录添加**:声明项目的源代码文件夹和头文件夹,例如:
```cmake
set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_SOURCE_DIR}/include)
add_subdirectory(src)
```
3. **目标和模块管理**:使用ADD_EXECUTABLE或ADD_LIBRARY等函数定义二进制目标(如可执行程序或库),指定对应的源文件:
```cmake
add_executable(myapp main.cpp utility.cpp)
```
4. **外部依赖管理**:通过FIND_PACKAGE或INCLUDE_FOLDERS等指令查找和处理外部依赖(比如Boost、Qt等):
```cmake
find_package(Boost REQUIRED system filesystem)
target_link_libraries(myapp Boost::system Boost::filesystem)
```
5. **构建配置**:设置构建类型(如DEBUG、RELEASE)、生成器(支持各种平台):
```cmake
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
message(STATUS "Building for ${CMAKE_BUILD_TYPE}")
```
6. **构建命令行**:最后,使用CMAKE_COMMAND生成配置文件和执行构建命令:
```cmake
configure()
make()
```
以上是一个基本的例子,实际的CMakeLists.txt可能会更复杂,取决于项目的规模和需求。创建完CMakeLists.txt后,可以在终端通过`cmake .`启动CMake,生成配置文件,然后用`make`或`cmake --build .`进行构建。