温馨提示×

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。

0