gcc 常用命令


gcc安装的各个部分:

 

g++

c++编译器,链接时使用c++库

 

gcc

c编译器,链接时使用c库

 

cc1

实际的c编译器

 

cc1plus

实际的c++编译器

 

collect2

使用collect2产生特定的全局初始化代码,后台处理是传递参数给ld完成实际的链接工作。

 

crt0.o

初始化和结束代码

 

libgcc

平台相关的库


binutils安装的各个部分

 

as

gnu汇编工具

 

gprof

性能分析工具

 

ld

gnu链接器

 

make

 

 

objcopy

目标文件从二进制格式翻译或复制到另一种

 

objdump

显示目标文件的各种信息

 

strings

显示文件的字符串

 

strip

去除符合表

 

readelf

分析elf并显示信息

链接器可以读写各种目标文件中的信息,通过BFD(binary file descriptor)提供的工具实现,BFD定义了类似a.out, elf, coff等目标文件的格式。


objdump程序

 

-a

 

文档头文件信息

 

-d

 

可执行代码的反汇编

 

-D

 

反汇编可执行代码及数据

 

-f

 

完整文件头的内容

 

-h

 

section表

 

-p

 

目标格式的文件头内容


gas汇编工具:as(at&t风格)语法说明

使用$标识立即数

再寄存器前面加上%

源操作数在前,目标操作数在后

使用$获取变量地址

长跳转使用:ljmp $section, $offset




<think>我们被要求解释gcc常用命令,然后提出3-5个相关问题。注意格式要求。 首先,我们需要列出gcc常用命令(选项),并给出简要解释。然后按照规则在最后输出“§§相关问题§§”并列出问题。 注意:问题必须基于用户的问题和我们的回答。 常用gcc命令选项包括: - 编译阶段选项:-E, -S, -c - 输出控制:-o - 警告选项:-Wall, -Wextra, -Werror等 - 优化选项:-O0, -O1, -O2, -O3, -Os - 调试选项:-g, -ggdb - 链接选项:-l, -L, -static, -shared等 - 宏定义和包含路径:-D, -I - 其他:-v(版本),-MM(生成依赖关系)等 我们将按照这些类别进行组织,并给出每个选项的简要说明。 注意:由于是常用命令,我们不需要列出所有,但需要覆盖最常用的。</think>### GCC 常用命令详解 GCC(GNU Compiler Collection)是 Linux 开发的核心工具集,以下是其常用命令及功能说明: #### 1. **基础编译命令** | 命令 | 功能 | 示例 | |------|------|------| | `gcc file.c` | 编译生成可执行文件 `a.out` | `gcc main.c` | | `gcc -o output` | 指定输出文件名 | `gcc main.c -o app` | | `gcc -c` | 只编译不链接(生成 .o 文件) | `gcc -c utils.c` | #### 2. **警告控制** | 选项 | 作用 | |------|------| | `-Wall` | 启用所有常见警告 | | `-Wextra` | 启用额外警告 | | `-Werror` | 将警告视为错误 | | `-w` | 禁用所有警告 | #### 3. **优化级别** | 选项 | 优化程度 | 适用场景 | |------|----------|----------| | `-O0` | 无优化 | 调试阶段 | | `-O1` | 基础优化 | 平衡开发 | | `-O2` | 激进优化 | 发布版本 | | `-O3` | 极致优化 | 性能关键 | | `-Os` | 空间优化 | 嵌入式系统 | #### 4. **调试支持** | 选项 | 功能 | |------|------| | `-g` | 添加调试信息(GDB 使用) | | `-ggdb` | 生成 GDB 专用调试信息 | | `-DDEBUG` | 定义 DEBUG 宏 | #### 5. **头文件与库管理** ```bash # 添加头文件搜索路径 gcc -I /path/to/headers main.c # 链接共享库 gcc main.c -lmath -L /lib/path # 静态链接 gcc -static main.c -lm ``` #### 6. **预处理与分步编译** ```bash # 只进行预处理(生成 .i 文件) gcc -E main.c -o main.i # 生成汇编代码(生成 .s 文件) gcc -S main.c # 编译+汇编(生成 .o 文件) gcc -c main.c ``` #### 7. **多文件编译** ```bash # 同时编译多个源文件 gcc main.c utils.c network.c -o app # 分别编译后链接 gcc -c main.c gcc -c utils.c gcc main.o utils.o -o app ``` #### 8. **其他实用选项** | 选项 | 功能 | |------|------| | `-MM` | 生成依赖关系(Makefile 使用) | | `-v` | 显示详细编译过程 | | `-std=c11` | 指定 C 语言标准 | | `-pthread` | POSIX 线程支持 | > **性能提示**:开发阶段使用 `-g -O0` 方便调试,发布时使用 `-O2 -DNDEBUG` 提升性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值