Wiki
C++Development environment setup and testing
Existing English translations were reused. 25 current source blocks remain in Simplified Chinese, without triggering paid translation.
In this chapter, we won't change the code first; we'll do just one very specific thing:
在你的电脑上把我准备好的 CMake 模板跑起来。
本教程使用同一套 C++ 示例,Linux 和 Windows 只是准备工具、选择构建预设和运行程序的路径不同。如果你刚开始学 C++,看到 CMake、Ninja、target_link_libraries 这些名字不用紧张,先按照自己系统对应的步骤把工程跑通。
1.先选择你的系统
| 你使用的系统 | 从这里开始 |
|---|---|
| Ubuntu / Debian、Fedora 等 Linux | Linux开发环境搭建与测试 |
| Windows 10 / 11,64 位电脑 | Windows开发环境搭建与测试 |
Linux 使用 GCC;Windows 使用 GCC / MinGW-w64,推荐通过 MSYS2 UCRT64 安装。Windows 也可以使用已经单独安装好的 MinGW-w64、CMake、Ninja 和 Eigen,具体配置放在 Windows 子节里。
C/C++ 基础、现代 C++ 和通用 CMake 工程可以使用 Linux 或 Windows 学习。进入后面的 Boost.Asio、串口、TCP/UDP 通信和机器人实践时,请准备好 Linux 环境,这部分教程统一按 Linux 的操作步骤讲解。
这一章只关心两件事:
- 你的电脑能不能编译并运行 C++ 工程。
- VSCode 能不能对这个工程下断点并进入调试。
完整 CMake 模板详解放在后面的 CMake工程模板。现在不要求你理解全部构建原理,等学到分文件编写、库和工程组织时再回来看。
2.Final effect of this chapter
做完对应系统的子节后,你会得到一个名为 hello_cpp 的文件夹,里面是完整的 CMake 模板工程。
When running the template as-is, the output is similar to:
[lib1] Vector v = 1 2 3
[lib1] Norm = 3.74166
[lib2] Matrix m =
1 2
3 4
[lib2] Determinant = -2
注意:hello_cpp 是 clone 下来的文件夹名,cmake_template 是工程当前生成的程序名,它们不是一回事。
先认识几个名字:
| 名字 | 先这样理解 |
|---|---|
g++ |
真正编译 C++ 代码的编译器 |
CMake |
读取 CMakeLists.txt,生成构建规则 |
Ninja |
按照 CMake 生成的规则执行编译 |
GDB |
调试器,查看断点、变量和调用栈时会用到 |
Eigen |
模板原始示例使用的线性代数库,主要以头文件形式使用 |
lib1 / lib2 |
模板自带的两个示例小库,本章先不改它们 |
3.后面章节的运行约定
完成环境搭建后,前期练习通常只需要修改:
src/main.cpp
然后在项目根目录重新构建、运行。根据自己的系统选择命令。
Linux:
cmake --build --preset linux-debug
./build/linux-debug/src/cmake_template
Windows,PowerShell:
cmake --build --preset windows-debug
./build/windows-debug/bin/cmake_template.exe
也可以直接使用 VSCode CMake Tools 的 Build、Launch 和 Debug 按钮。两个系统的操作顺序相同,选择的 preset 分别是 linux-debug、windows-debug。
| 用途 | Linux | Windows |
|---|---|---|
| Debug 预设 | linux-debug |
windows-debug |
| Release 预设 | linux-release |
windows-release |
| Debug 构建目录 | build/linux-debug |
build/windows-debug |
| 日常运行的程序 | build/linux-debug/src/cmake_template |
build/windows-debug/bin/cmake_template.exe |
| 安装后的程序 | install/linux-debug/bin/cmake_template |
install/windows-debug/bin/cmake_template.exe |
日常练习直接运行 build 目录中的程序即可,只有验证安装和分发时才需要 install。
4.Install the VSCode extension
两种系统都使用 VSCode。扩展分工如下,具体安装和配置步骤见对应系统的子节:
| 扩展 | 作用 |
|---|---|
| CMake Tools | 识别 preset,配置、构建、选择 target,运行和调试工程 |
| C/C++ | 提供 GDB 等调试器的接入,也可以提供 IntelliSense |
| C/C++ DevTools | 按需要使用的辅助扩展 |
| clangd | 根据 compile_commands.json 提供代码补全、跳转和诊断 |
如果用 clangd 做代码分析,可以保留 C/C++ 的调试功能,同时关闭它的 IntelliSense,避免两套代码提示重复。clangd 扩展还需要电脑上有 clangd 程序,这部分也在系统子节中说明。
5.What to learn next
先完成自己系统的环境搭建,再进入 C++基础初识。后面的语法、类、STL 和现代 C++ 示例共用同一份讲解,遇到系统差异时会在对应位置补充。