Ubuntu GCC 使用教程大全
什么是 GCC
GCC 是 GNU Compiler Collection 的缩写,是一个用于编程语言的编译器,支持多种语言如 C、C++、Fortran、Objective-C、Ada、Go 等。它最初是为 GNU 操作系统开发的,但如今已被广泛应用于各种 Unix-like 系统(包括 Linux)和其他操作系统(如 Windows,通过 MinGW 或 Cygwin)。
安装 GCC
安装命令
sudo apt update sudo apt install build-essential
验证安装
gcc --version
编译流程
GCC 编译器的编译流程主要分为四个步骤:预处理、编译、汇编和链接。
- 预处理:处理宏定义、头文件、条件编译等。
- 编译:将预处理的代码转成汇编代码。
- 汇编:把汇编代码转成机器代码(生成目标文件)。
- 链接:将目标文件链接成最终的可执行文件。
示例:编译一个简单的 C 程序
-
创建一个名为
hello.c
的文件,内容如下:#include
int main() { printf("Hello, World!\n"); return 0; } -
编译该文件:
gcc hello.c -o hello
-
运行生成的可执行文件:
./hello
输出应该是:
Hello, World!
常用编译选项
基本选项
-c
:只编译不链接为可执行文件,生成目标文件(.o
文件)。-o
:指定输出文件名,默认为a.out
。
编译优化选项
-O1
:启用基本的优化。-O2
:启用更多的优化。-O3
:启用最高的优化级别。
调试选项
-g
:生成调试信息,便于调试。
其他常用选项
-Wall
:显示所有警告信息。-Wextra
:显示额外的警告信息。
分步编译
分步编译可以帮助更好地理解编译器的工作流程,并且具有更高的灵活性。
-
编译源程序文件:
gcc -c main.c -o main.o
-
链接目标文件:
gcc main.o -o main
使用 Makefile
Makefile 使得多文件项目的编译更加方便。以下是一个简单的 Makefile 示例:
main: main.o input.o calcu.o gcc main.o input.o calcu.o -o main main.o: main.c gcc -c main.c input.o: input.c gcc -c input.c calcu.o: calcu.c gcc -c calcu.c clean: rm *.o main
使用 make
命令编译项目
在项目目录下运行以下命令:
make
make
命令会根据 Makefile 中的规则自动编译和链接项目。
调试程序
使用 GDB 调试 C/C++ 程序
-
安装 GDB:
sudo apt install gdb
-
在终端中使用以下命令调试程序:
gdb ./main
-
在 GDB 中设置断点、单步执行、查看变量等。
参考资料
- Linux(Ubuntu)-gcc 学习
- 一文入门 gcc
- gcc/g++/gdb 的正确打开方式:从编译到调试,一次搞懂!
- ubuntu gcc 在 Ubuntu 上安装和使用
- ubuntu gcc 使用教程
- ubuntu gcc 编译命令
- ubuntu gcc 链接器脚本
- 使用 ubuntu gcc 命令编译程序的步骤
- 通过 ubuntu gcc 编译命令优化内存使用
- ubuntu gcc 编译优化系列
- Ubuntu GCC 的简单教程
- 【gcc编译优化系列】如何获取 gcc 默认的链接脚本
- 【原创】计算机自制操作系统(Linux篇)六:Ubuntu下GCC编译和链接过程配置
- Ubuntu C编译器性能调优案例分析
- 优化 Ubuntu C编译性能技巧
- Ubuntu C编译器编译优化选项详解