
在C++开发中,g++ 是 GNU 编译器集合(GCC)中用于编译 C++ 程序的命令行工具。它功能强大、跨平台支持良好,常用于 Linux、macOS 以及 Windows(通过 MinGW 或 WSL)环境下的程序编译。
1. 基本编译命令
假设你有一个名为 hello.cpp 的 C++ 源文件,内容如下:
#includeint main() { std::cout << "Hello, World!" << std::endl; return 0; }
使用 g++ 编译并生成可执行文件的基本命令是:
g++ hello.cpp -o hello
- g++:调用 C++ 编译器
- hello.cpp:源文件名
- -o hello:指定输出的可执行文件名称(Linux/macOS 下通常无后缀,Windows 下为 hello.exe)
如果没有使用 -o 参数,g++ 默认会生成名为 a.out 的可执行文件(在 Linux/macOS 上)。
立即学习“C++免费学习笔记(深入)”;
2. 编译与运行步骤
完整流程分为两步:编译和执行。
-
编译成可执行文件:
g++ hello.cpp -o hello -
运行程序:
- Linux/macOS:
./hello - Windows(MinGW/MSYS):
hello.exe或hello
- Linux/macOS:
3. 常用编译选项
实际开发中,常加入一些选项来提升代码质量和调试效率。
-
-Wall:开启常用警告信息,帮助发现潜在问题
示例:g++ -Wall hello.cpp -o hello -
-g:生成调试信息,便于使用 gdb 调试
示例:g++ -g hello.cpp -o hello - -O2:开启优化,提高运行速度(发布时常用)
-
-std=c++11(或 c++14 / c++17 / c++20):指定 C++ 标准版本
示例:g++ -std=c++17 hello.cpp -o hello
4. 多文件编译
如果项目包含多个源文件,例如 main.cpp、func.cpp,可以一起编译:
g++ main.cpp func.cpp -o myprogram
也可以先分别编译为目标文件(.o),再链接:
g++ -c main.cpp g++ -c func.cpp g++ main.o func.o -o myprogram
这种方式适合大型项目,避免重复编译所有文件。
基本上就这些。掌握 g++ 命令行编译方法,能让你更灵活地处理 C++ 项目,尤其在没有 IDE 的环境下非常实用。熟练使用 -o、-Wall、-g 和 -std= 等选项,是写好 C++ 程序的基础技能。











