Linux下CMake快速上手教程

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是之前指定的可执行文件名。

操作系统标签