C++ 环境搭建
1. 什么是 C++?
编程语言是计算机理解人类指令的工具。如同人类用语言交流,程序员通过编程语言指挥计算机执行任务。
C++ 是一种高性能编程语言,相比 Python 更接近底层硬件,虽然学习曲线陡峭,但能实现更高效的资源管理和计算性能。
2. 配置 C++ 编译环境
基本概念
- C++ 是编译型语言,代码需通过编译器转换为可执行文件。
- g++ 是 GNU Compiler Collection(GCC)中的 C++ 专用编译器,本系统已默认安装。
以下是验证 g++ 是否已安装及其版本的步骤。
步骤 1:打开终端
如下图所示,点击终端图标打开终端。

如果出现环境选择界面下图所示,请输入数字 2。

步骤 2:检查 g++ 版本
在终端输入以下命令并按回车键(Enter)执行:
g++ --version
如果终端输出 g++ 版本号,说明系统已安装 g++ 编译器,如下图。
3. 编写示例程序
编写完 C++ 代码后,需要通过编译器将其转换为可执行文件。下面我们将通过一个简单的猜数字游戏示例,演示如何编译和运行 C++ 程序。
步骤 1:创建 C++ 文件
如下图所示,在终端输入以下命令创建 random_game.cpp 文件并使用默认编辑器 Mousepad 打开。
# 创建 random_game.cpp 文件
touch random_game.cpp
# 用默认编辑器打开文件 random_game.cpp
mousepad random_game.cpp
默认编辑器 Mousepad 打开 random_game.cpp 后(如下图),即可进入下一步

步骤 2:编写代码
将以下代码复制到 random_game.cpp 文件中,如下图所示。
#include <iostream> // 提供输入输出功能(如 std::cout 和 std::cin)
#include <cstdlib> // 提供 rand() 和 srand() 函数,用于生成随机数
#include <ctime> // 提供 time() 函数,用于获取当前时间作为随机种子
int main() {
// 初始化随机种子
std::srand(static_cast<unsigned int>(std::time(nullptr)));
// 生成 1-100 的随机数
int randomNumber = std::rand() % 100 + 1;
int guess = 0;
std::cout << "欢迎来到猜数字游戏!\n"<< std::endl;
std::cout << "已生成 1-100 的随机数,开始猜测吧!\n\n" << std::endl;
// 游戏主循环:持续猜测直到正确
while (guess != randomNumber) {
std::cout << "请输入你的猜测:";
std::cin >> guess;
// 判断猜测结果
if (guess < randomNumber) {
std::cout << "太低了!再试一次。\n\n" << std::endl;
} else if (guess > randomNumber) {
std::cout << "太高了!再试一次。\n\n" << std::endl;
} else {
// 退出循环说明猜测正确
std::cout << "恭喜,猜对了!\n" << std::endl;
}
}
return 0;
}

步骤 3:保存并退出
保存文件 random_game.cpp(如下图)

并关闭编辑器(如下图)

关闭编辑器后回到终端,准备编译和执行 C++ 程序。
4. 编译和执行
编译的基础知识介绍
编译是将源代码(通常是用高级编程语言编写的)转换为计算机可执行的机器代码的过程。这一过程通常分为预处理(Preprocessing)、编译(Compilation)、汇编(Assembly) 和 链接(Linking) 四个阶段。编译器会将整个程序的代码翻译成一个可执行文件。
实际上编译的四个阶段可以理解为从餐厅顾客点餐到厨师烹饪出来菜肴的整个过程。
| 编译阶段 | 厨房类比 | 技术说明 | 命令示例 |
|---|---|---|---|
| 预处理 | 准备食材:清洗、切配 | 处理 #include 和宏替换 | g++ -E hello.cpp -o hello.i |
| 编译 | 烹饪食材:煎炒烹炸 | 将C++代码转为汇编代码 | g++ -S hello.i -o hello.s |
| 汇编 | 摆盘定型:菜品成型 | 将汇编代码转为机器码(.o文件) | g++ -c hello.s -o hello.o |
| 链接 | 上菜服务:组合菜品 | 合并库文件生成可执行程序 | g++ hello.o -o hello |
通过 g++ 命令可以看到各个过程的输入和产物,如下图。

一般情况下,我们使用g++编译器提供的命令时会省略中间的步骤,直接使用类似以下的命令来生成可执行文件。如下例子
g++ hello.cpp -o hello
步骤 1:编译示例程序
回到在猜数字游戏,在终端中执行以下命令来编译 random_game.cpp 文件并生成可执行文件 random_game, 如下图。
g++ random_game.cpp -o random_game # 编译 random_game.cpp 并生成可执行文件 random_game

步骤 2:执行示例程序
编译完成后在终端中执行以下命令即可运行程序,如下图。
./random_game # 运行生成的可执行文件

注:如果要运行的 C++ 程序需要使用到系统中未安装的库,请参阅 C++ 库安装
5. C++ 库安装
在 Bianbu 中,可以使用 apt 命令来安装 C++ 文件中头文件所在的库软件包。例如,我们编写一个示例程序来使用 boost 库的 lexical_cast 函数来计算 42 的平方,代码如下:
步骤 1:编写测试代码
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp> // 使用 Boost 库中的 lexical_cast 函数
int main() {
std::string num_str = "42";
try {
// 使用 Boost 的 lexical_cast 将字符串转换为整数
int num = boost::lexical_cast<int>(num_str);
std::cout << "The number is: " << num << std::endl;
std::cout << "The square is: " << (num * num) << std::endl;
} catch (boost::bad_lexical_cast& e) {
// 异常处理:如果转换失败(如输入非数字字符串),输出错误信息
std::cerr << "Conversion failed: " << e.what() << std::endl;
}
return 0;
}
步骤 2:首次编译测试
将代码保存到 example.cpp 文件后,使用如下命令编译。
g++ example.cpp -o example # 会报错!见下图
步骤 3:安装 Boost 开发包
如果执行编译命令后终端出现了报错信息,说明系统未安装 boost 库,可以使用 apt 来安装 boost 库到系统中,命令如下:
sudo apt install -y libboost-all-dev
安装完成后,如下图所示

步骤 4:重新编译运行
成功安装后,再次编译并运行 example.cpp,如果终端出现了如下图的打印,则说明 boost 库已经成功安装且可以被程序调用:
# 编译
g++ example.cpp -o example
# 运行程序
./example
