CMake是一个跨平台的构建系统,用于管理软件构建过程,特别是在复杂项目中,它可以简化和标准化构建过程。以下是CMake管理构建C++代码的一般过程:
在CMakeLists.txt中,你可以:
指定CMake的最低版本:
cmake_minimum_required(VERSION 3.10)
定义项目名称:
project(MyProject)
设置C++标准:
set(CMAKE_CXX_STANDARD 14)
添加可执行文件和源文件:
add_executable(my_executable main.cpp some_other_file.cpp)
添加库文件:
如果项目中有库文件,可以使用add_library
指令,并使用target_link_libraries
将库链接到可执行文件。
包含子目录:
对于大型项目,可以将源代码分散在多个子目录中,并在每个子目录中创建自己的CMakeLists.txt文件。使用add_subdirectory
指令来包含这些子目录。
在项目的根目录中,运行以下命令来生成构建文件:
cmake .
这将根据CMakeLists.txt文件在当前目录中生成适合您系统的构建文件(例如,Makefile)。
一旦生成了构建文件,就可以使用相应的构建工具来编译项目了。如果生成的是Makefile,可以使用:
make
这将编译项目并生成指定的可执行文件或库。
编译完成后,你可以直接运行生成的可执行文件:
./my_executable
假设有一个C++项目,包含以下文件:
main.cpp
:程序入口。math_functions.cpp
:提供数学运算的源文件。math_functions.h
:数学运算的头文件。你可以创建一个CMakeLists.txt文件,内容如下:
cmake_minimum_required(VERSION 3.10)
project(MyMathProject)
set(CMAKE_CXX_STANDARD 14)
add_executable(my_math_app main.cpp math_functions.cpp)
然后,在项目根目录执行:
cmake .
make
这将编译代码并创建可执行文件 my_math_app
。
通过这个过程,CMake提供了一个灵活且可扩展的方式来处理从小型到大型项目的C++代码构建,无论是在哪个平台上。