本节完成第一个 C++ 程序,并说明从源码到可执行文件的基本流程。多数读者可直接使用本站在线编译器编写、编译并运行示例,无需先安装 Visual Studio 或完整本地工具链;若课程要求提交本地工程,文末也给出可选的安装与编译命令。
本站在线运行(推荐入门)
打开 C++ 在线编译器:在页面中编辑 .cpp 源码,点击运行后由服务端完成编译与执行,编译诊断与程序输出会显示在结果区域。与本教程前几章的语法、标准输入输出练习兼容;后续涉及多文件工程或第三方库时,以课程指定的构建方式为准。
教程中部分示例带有运行按钮,会打开预设代码的测试页,逻辑与上述在线编译器相同。若本机尚未配置环境,建议先以在线编译器跟练下文 Hello World,再按需安装 g++ 体验终端中的编译命令。
本地工具链(可选)
C++ 程序通常使用 g++ 或 clang++ 编译。仅在需要离线练习或作业要求本地构建时再配置。各系统的安装入口与 g++ 命令写在文末可选:本地安装与编译命令;若已熟悉 C 语言环境搭建,本地 GCC 往往可同时编译 C 与 C++,但 C++ 需加 -std=c++17 等选项以启用现代特性。
第一个程序:Hello, World!
下列程序使用 C++ 标准库中的输入输出流,在在线编译器中可直接粘贴运行;也可保存为 hello.cpp 在本地编译。
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}输出:
Hello, World!若已安装本地编译器,可在终端执行:
g++ -std=c++17 -Wall hello.cpp -o hello
./hello # Windows 下为 hello.exe-Wall 打开常见警告,有助于尽早发现潜在问题;-std=c++17 与本教程示例习惯一致,可按课程要求改为 c++20 等。
逐行说明
#include <iostream>:引入标准输入输出流声明,使std::cout、std::endl可用。与 C 的#include <stdio.h>作用类似,但面向 C++ 流接口(详见标准输入与输出)。int main():程序入口;返回int表示向操作系统报告退出状态,0通常表示成功。std::cout << ...:流插入运算符,将右侧内容输出到标准输出;std::endl输出换行并刷新缓冲区。return 0;:显式返回成功状态(省略时 C++ 仍会在main末尾补return 0,初学阶段建议写明)。
可尝试将字符串改为中文问候,或故意删除分号观察编译器报错,以熟悉诊断信息的阅读方式。
从源码到可执行文件
C++ 与 C 一样属于编译型语言:源码经编译与链接生成可执行文件,再由操作系统加载运行。单文件小程序可概括为下列步骤(多文件工程会在头文件与多文件中展开):
hello.cpp(源码)
↓ ① 预处理:展开 #include、处理条件编译与宏
↓ ② 编译:将 C++ 源码翻译成汇编或中间表示
↓ ③ 汇编:生成目标文件 hello.o / hello.obj
↓ ④ 链接:接入标准库与运行时,生成可执行文件
hello(或 hello.exe)在线编译器在服务端完成上述步骤;本地终端一条 g++ 命令通常也会自动串联编译与链接。
常见错误快速排查
| 报错特征 | 常见原因 |
|---|---|
expected ';' before ... | 漏了分号,在上一行末尾补 ; |
'cout' was not declared 等 | 忘记 #include <iostream>,或未写 std:: 前缀 |
undefined reference to 'main' | 缺少 main 函数,或函数名拼写错误 |
g++: command not found | 编译器未安装或未加入 PATH;可先改用在线编译器 |
调试时可先读懂首条相关报错,对照本节与注释中的示例修改,再重新编译。保持这一习惯,有利于后续学习异常与更复杂的工程配置。
可选:本地安装与编译命令
跟练本教程不必先装本地编译器,优先使用在线编译器即可。仅当作业要求提交本机可执行文件、或需要离线练习时,再按系统安装 g++ / clang++。下列命令为常见入口,安装程序界面与软件源名称可能随版本变化。
安装
- Windows:安装 MSYS2 后,在 MSYS2 UCRT64 终端执行
pacman -S mingw-w64-ucrt-x86_64-gcc,并把该环境的bin加入 PATH。也可在 Visual Studio 安装程序中勾选 C++ 桌面开发工作负载,改用其开发者命令提示符中的编译器。 - macOS:在终端执行
xcode-select --install,按提示安装命令行工具;完成后clang++与多数情况下的g++别名即可使用。 - Linux(Debian / Ubuntu):
sudo apt update后执行sudo apt install g++。Fedora 可用sudo dnf install gcc-c++。
安装后执行 g++ --version 或 clang++ --version,能打印版本号即表示可用。
编译与运行
将上文程序保存为 hello.cpp,在该文件所在目录打开终端:
# Linux / macOS
g++ -std=c++17 -Wall hello.cpp -o hello
./hello
# Windows(MinGW / MSYS2)
g++ -std=c++17 -Wall hello.cpp -o hello.exe
hello.exe-std=c++17 与本教程示例习惯一致,可按课程改为 c++20。-Wall 打开常见警告。一条 g++ 命令通常会完成编译与链接;多文件工程见头文件与多文件。
本节说明了本站在线编译器的用法、第一个使用 iostream 的程序、编译流程概要,以及可选的本地安装与编译命令。下一节介绍变量与基本类型:内置类型、字面量与 auto 的入门用法。