做网站设计需要哪些软件爱做网站视频
CMake的基础知识
- 什么是 CMake
 
- CMake 是一个跨平台的构建工具,主要用于管理构建过程。CMake 不直接构建项目,而是生成特定平台上的构建系统(如 Unix 下的 Makefile,Windows 下的 Visual Studio 工程),然后通过这些构建系统来进行编译和链接
 
-  
CMake 的基本流程
CMake 的工作流程通常如下:- 编写 CMakeLists.txt 文件来定义项目的构建逻辑。
 - 使用 cmake 命令生成构建文件(如 Makefile)。
 - 运行生成的构建系统(如 make)来构建项目。
 
 -  
例子如下
//一个简单的 C++ 项目,文件结构如下 project/ ├── CMakeLists.txt ├── main.cpp//main.cpp #include <iostream>int main() {std::cout << "Hello, CMake!" << std::endl;return 0; }//CMakeLists.txt cmake_minimum_required(VERSION 3.10) # 设置最低 CMake 版本要求 project(HelloCMake) # 定义项目名称set(CMAKE_CXX_STANDARD 11) # 设置 C++ 标准 add_executable(hello main.cpp) # 定义生成的可执行文件- 构建步骤 
- 创建构建目录并进入
 
 
mkdir build cd build2. 运行 CMake 生成构建文件cmake .. # .. 指的是上一级目录(也称为父目录)。在运行 cmake 命令时,指定的是包含 CMakeLists.txt 文件的路径。3. 构建项目make4. 运行生成的可执行文件./hello
 - 构建步骤 
 
CMake 的基本指令
- cmake_minimum_required
 
# 指定 CMake 运行所需的最低版本,例如
cmake_minimum_required(VERSION 3.10)
 
- project
 
# 定义项目的名称和相关的语言
project(MyProject LANGUAGES C CXX)
 
- set
 
# 设置变量值。常用于设置编译选项、路径等
set(CMAKE_CXX_STANDARD 11)  # 设置 C++ 标准为 C++11
set(SOURCE_FILES main.cpp file1.cpp file2.cpp)  # 定义源文件列表
 
- add_executable
 
# 定义要生成的可执行文件。你需要给出目标名称和源文件列表
定义要生成的可执行文件。你需要给出目标名称和源文件列表
 
- add_library
 
# 用于生成静态或动态库
# 生成静态库
add_library(mylib STATIC file1.cpp file2.cpp)# 生成动态库
add_library(mylib SHARED file1.cpp file2.cpp) 
- target_link_libraries
 
# 用于链接外部库或内部库
target_link_libraries(my_program mylib)  # 链接自定义库
target_link_libraries(my_program PUBLIC pthread)  # 链接系统库
 
- include_directories
 
# 为项目指定头文件目录
include_directories(/path/to/headers)
 
管理多个源文件和目录
举例说明
- 假设项目结构如下
 
project/
├── CMakeLists.txt
├── src/
│   ├── CMakeLists.txt
│   ├── main.cpp
│   ├── file1.cpp
│   ├── file2.cpp
└── include/└── file1.h└── file2.h 
- 顶层 CMakeLists.txt
 
cmake_minimum_required(VERSION 3.10)
project(MyProject)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)# 添加 include 目录
include_directories(${PROJECT_SOURCE_DIR}/include)# 递归处理 src 目录
add_subdirectory(src) 
- src/CMakeLists.txt
 
# 定义源文件列表
set(SOURCE_FILES main.cpp file1.cpp file2.cpp)# 生成可执行文件
add_executable(my_program ${SOURCE_FILES}) 
- 构建项目
 
mkdir build
cd build
cmake ..
make
 
跨平台和编译器支持
CMake 的一个优势在于它能够支持多平台和多编译器。你可以通过 CMake 生成 Visual Studio、Xcode 工程文件,或者为其他平台生成 Makefile。
- 生成不同平台的构建文件
 
- G关键字
 
# 生成 Unix Makefile(默认)
cmake ..# 生成 Visual Studio 工程
cmake -G "Visual Studio 16 2019" ..# 生成 Xcode 工程
cmake -G "Xcode" .. 
- 支持多编译器(D)
 
# 可以通过 CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER 变量指定编译器
cmake -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ ..