1. 简介

CMake 是一个跨平台的构建系统生成工具,可以用来生成 Makefile 或者项目文件,用于编译各种类型的软件项目。它允许开发者编写平台无关的代码,然后在不同的平台上编译和构建项目。CMake 的灵活性和可配置性使其成为开源项目以及商业软件的首选构建工具之一。

2. CMake 基本命令

2.1 project

project 命令用于初始化 CMake 项目,并设置项目的基本信息,如名称、版本等。

project(MyProject 1.0.0) 

2.2 add_executable

add_executable 命令用于创建一个可执行文件。

add_executable(MyExecutable main.cpp) 

2.3 add_library

add_library 命令用于创建一个库(静态库或共享库)。

add_library(MyLibrary SHARED mylib.cpp) 

2.4 include_directories

include_directories 命令用于添加头文件搜索路径。

include_directories(/usr/local/include) 

2.5 link_directories

link_directories 命令用于添加库文件搜索路径。

link_directories(/usr/local/lib) 

2.6 target_link_libraries

target_link_libraries 命令用于将库链接到目标文件。

target_link_libraries(MyExecutable pthread) 

3. CMake 常用函数

3.1 find_package

find_package 命令用于查找外部包,如 Qt、Boost 等。

find_package(Qt5 COMPONENTS Widgets REQUIRED) 

3.2 set

set 函数用于设置变量的值。

set(CMAKE_CXX_STANDARD 14) 

3.3 foreach

foreach 循环用于遍历列表。

foreach(file ${SRCS}) add_executable(MyExecutable ${file}) endforeach() 

3.4 if

if 语句用于条件判断。

if(WIN32) add_definitions(-DWINDOWS) endif() 

3.5 message

message 函数用于输出信息。

message("Hello, CMake!") 

4. 实例分析

以下是一个简单的 CMakeLists.txt 文件示例,展示了如何使用上述命令和函数:

cmake_minimum_required(VERSION 3.10) project(MyProject) set(CMAKE_CXX_STANDARD 14) include_directories(/usr/local/include) add_executable(MyExecutable main.cpp) target_link_libraries(MyExecutable pthread) find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(MyExecutable Qt5::Widgets) 

在这个例子中,我们创建了一个名为 MyProject 的项目,设置 C++ 标准为 C++14,添加了头文件搜索路径,创建了一个名为 MyExecutable 的可执行文件,并将其链接到 pthread 库。最后,我们查找 Qt5 库并链接到我们的可执行文件。

5. 总结

CMake 是一个功能强大的构建系统生成工具,掌握其常用命令和函数对于开发者来说至关重要。本文介绍了 CMake 的基本命令和函数,并通过一个实例展示了如何使用它们。通过不断实践和总结,相信您能够熟练掌握 CMake,并利用它来构建和管理您的项目。