一个简单的c++ cmakelist.txt
时间: 2024-10-13 14:10:55 浏览: 22
linux 使用cmake编译cuda CmakeList.txt
CMakeLists.txt是CMake构建系统中的关键文件,它定义了如何配置、编译和链接项目。对于一个简单的C++项目,CMakeLists.txt的基本结构通常包含以下几个部分:
1. **项目名称声明**:
```cmake
cmake_minimum_required(VERSION 3.0)
project(MyProject CXX)
```
这里指定了项目的名称和使用的语言(CXX代表C++11及以上版本)。
2. **添加源文件目录**:
```cmake
set(SOURCES
src/main.cpp
src/class1.cpp
src/class2.cpp
# 更多源文件...
)
```
这里列举所有需要编译的源代码文件。
3. **指定目标库或可执行文件**:
```cmake
add_executable(${PROJECT_NAME} ${SOURCES})
```
`add_executable`命令创建了一个名为`MyProject`的可执行文件,并将源文件链接在一起。
4. **选择构建工具**(如GCC或Clang):
```cmake
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
message(FATAL_ERROR "This project only supports GCC.")
endif()
```
这里检查是否使用了GCC,如果不是则报错。
5. **自定义选项和配置**:
```cmake
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
```
可以添加一些选项供用户在构建时选择。
完整的简单示例可能看起来像这样:
```cmake
cmake_minimum_required(VERSION 3.0)
project(MyProject CXX)
set(SOURCES
src/main.cpp
src/class1.cpp
src/class2.cpp
)
add_executable(${PROJECT_NAME} ${SOURCES})
# 如果不是GCC,则报错
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
message(FATAL_ERROR "This project only supports GCC.")
endif()
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
# 添加其他配置或依赖项...
```
阅读全文