
在Linux环境下,g++是编译C++程序最常用的工具之一。它是GNU编译器集合(GCC)的一部分,功能强大且支持最新的C++标准。下面介绍如何使用g++编译C++程序,适合初学者快速上手。
编译单个C++源文件
假设你有一个名为 main.cpp 的C++源文件,内容如下:
#includeint main() { std::cout << "Hello, World!" << std::endl; return 0; }
在终端中进入该文件所在目录,运行以下命令进行编译:
g++ main.cpp -o hello
这会将 main.cpp 编译成一个可执行文件 hello。如果不加 -o 参数,g++默认生成名为 a.out 的可执行文件。
立即学习“C++免费学习笔记(深入)”;
运行程序:
./hello
输出结果为:Hello, World!
启用C++标准版本
现代C++代码通常使用C++11、C++14或更高标准。为了启用特定标准,使用 -std= 参数:
g++ -std=c++11 main.cpp -o hellog++ -std=c++14 main.cpp -o hellog++ -std=c++17 main.cpp -o hellog++ -std=c++20 main.cpp -o hello
推荐在编译时明确指定标准,避免因默认版本过低导致语法报错。
编译多个源文件
如果项目包含多个C++文件,比如 main.cpp、func.cpp 和 func.h,可以一次性编译所有源文件:
g++ main.cpp func.cpp -o myprogram
g++会自动将这些文件编译并链接成一个可执行文件 myprogram。头文件(.h)不需要在命令行中列出,只要在源文件中正确包含即可。
常用编译选项
实际开发中,常配合一些有用的选项来提升开发效率和代码质量:
- -Wall:开启大多数警告信息,帮助发现潜在问题
- -g:生成调试信息,便于使用gdb调试
- -O2:开启优化,提高程序运行速度
- -c:只编译不链接,生成目标文件(.o)
例如,带警告和调试信息的编译命令:
g++ -Wall -g -std=c++17 main.cpp -o hello
简单构建脚本(Makefile 示例)
当项目变大时,手动输入命令不便。可以写一个简单的 Makefile:
hello: main.cpp func.cpp
g++ -Wall -g -std=c++17 main.cpp func.cpp -o hello
clean:
rm -f hello
保存为 Makefile 后,在终端运行:
make
即可自动编译。运行 make clean 可删除生成的可执行文件。
基本上就这些。掌握g++的基本用法后,就能顺利编译和运行大多数C++程序了。不复杂但容易忽略的是开启警告和指定C++标准,建议养成良好习惯。











