GCC编译器在Linux上怎么用
小樊
40
2025-11-14 10:43:05
在 Linux 上使用 GCC 的完整入门指南
一 安装与验证
- 在 Debian/Ubuntu 系列安装开发工具链:
- 安装:sudo apt update && sudo apt install build-essential
- 验证:gcc –version
- 在 CentOS/RHEL 系列安装开发工具组:
- 安装:sudo yum groupinstall “Development Tools”
- 在 Fedora 系列安装开发工具组:
- 安装:sudo dnf groupinstall “Development Tools”
- 安装完成后,可用 gcc -v 查看更详细的版本与配置信息。
二 快速上手 单文件编译与运行
- 编译 C 程序:gcc hello.c -o hello
- 编译 C++ 程序:g++ hello.cpp -o hello
- 运行可执行文件:./hello
- 若不指定 -o,默认输出为 a.out;Linux 可执行文件通常不需要后缀名。
三 理解编译流程与分步编译
- 预处理:gcc -E hello.c -o hello.i(展开头文件与宏)
- 编译为汇编:gcc -S hello.i -o hello.s
- 汇编为目标文件:gcc -c hello.s -o hello.o(或直接 gcc -c hello.c -o hello.o)
- 链接生成可执行文件:gcc hello.o -o hello
- 以上对应 GCC 的 预处理 → 编译 → 汇编 → 链接 四个阶段,便于定位问题与学习底层过程。
四 多文件项目与库的使用
- 多源文件一起编译:gcc main.c foo.c -o app
- 分步编译与链接(利于增量构建):
- gcc -c main.c -o main.o
- gcc -c foo.c -o foo.o
- gcc main.o foo.o -o app
- 头文件与库路径:
- 指定头文件目录:gcc main.c -I ./include -o app
- 指定库目录与库名:gcc main.c -L ./lib -lmylib -o app
- 常用开关:
- 开启更多警告:gcc -Wall -Wextra
- 将警告视为错误:gcc -Werror
- 生成调试信息:gcc -g
- 优化等级:gcc -O1/-O2/-O3(数字越大优化越强,编译时间更长)
五 调试与常见注意事项
- 使用 GDB 调试:先用 gcc -g 编译,再执行 gdb ./app;常用命令:break(设断点)、run(运行)、next(单步)、print(打印变量)。
- 运行权限:若提示无执行权限,使用 chmod +x app 添加可执行权限;不要用 sudo 去“运行”普通程序。
- 多线程程序:链接 pthread 时添加 -pthread 选项(例如:gcc -pthread main.c -o app)。
- 路径执行:当前目录执行需加 ./,如 ./app;也可使用绝对路径 /path/to/app。