1. CMake简介
CMake是一个跨平台的构建工具,它能够帮助开发者简化项目的构建过程。它使用一种名为CMakeLists.txt的文本文件来描述项目的构建规则,然后根据这些规则生成构建系统所需的Makefile或IDE项目文件。CMake支持多种编程语言,包括C、C++、Python等,它易于学习和使用,并具有强大的功能和灵活性。
2. CMake安装
2.1 Linux下安装CMake
在Linux下,可以通过包管理器来安装CMake。以Ubuntu系统为例,打开终端,运行以下命令:
sudo apt-get install cmake
安装完成后,可以通过以下命令验证是否安装成功:
cmake --version
如果成功输出CMake的版本号,则说明安装成功。
3. CMake基本用法
3.1 创建CMakeLists.txt文件
在项目根目录下创建一个名为CMakeLists.txt的文件,并打开编辑器。这个文件将描述项目的构建规则。
3.2 设置项目的最低CMake版本号
在CMakeLists.txt文件的第一行添加以下内容:
cmake_minimum_required(VERSION 3.0)
这表示项目需要使用CMake的最低版本为3.0。
3.3 设置项目名称和版本号
在CMakeLists.txt文件中添加以下内容:
project(MyProject VERSION 1.0)
这里将项目名称设置为MyProject,并将版本号设置为1.0。
4. 添加源文件
4.1 指定源文件目录
在CMakeLists.txt文件中添加以下内容:
aux_source_directory(src SOURCES)
这里假设项目的源文件都位于src目录下,并将所有源文件的路径保存到变量SOURCES中。
4.2 添加可执行文件
在CMakeLists.txt文件中添加以下内容:
add_executable(MyExecutable ${SOURCES})
这里将所有源文件编译为一个可执行文件MyExecutable。
5. 设置编译选项
5.1 设置C++标准
在CMakeLists.txt文件中添加以下内容:
set(CMAKE_CXX_STANDARD 11)
这里将C++标准设置为C++11。
5.2 设置编译器选项
可以通过以下方式设置编译器选项:
add_compile_options(-Wall -Wextra)
这里设置了一些常用的编译器警告选项。
6. 指定依赖库
6.1 外部库
如果项目依赖于外部库,可以使用以下方式指定依赖库:
find_package(OpenCV REQUIRED)
target_include_directories(MyExecutable PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(MyExecutable PRIVATE ${OpenCV_LIBRARIES})
这里假设项目依赖于OpenCV库。
6.2 子目录中的库
如果项目中包含其他子目录,这些子目录中的库可以使用以下方式进行添加:
add_subdirectory(subdir)
target_link_libraries(MyExecutable PRIVATE SubLibrary)
这里假设子目录名为subdir,子目录中的库名为SubLibrary。
7. 构建项目
7.1 创建构建目录
在项目根目录下创建一个名为build的目录,并进入该目录:
mkdir build
cd build
7.2 执行CMake命令
在build目录下执行以下命令:
cmake ..
CMake将根据CMakeLists.txt文件生成构建系统所需的Makefile。
7.3 编译项目
在build目录下执行以下命令:
make
根据生成的Makefile进行项目的编译。
7.4 运行可执行文件
编译成功后,在build目录下执行以下命令:
./MyExecutable
这里的MyExecutable是之前指定的可执行文件名。