gcc 使用方法

执行过程示例

  • 示例代码
1
2
3
4
5
6
7
#include <stdio.h>
 
int main( void )
{
     printf ( "hello\n" );
     return 0;
}
这个过程处理 宏定义和include,并做语法检查。
可以看到 预编译后,代码从6行扩展到了910行。
gcc -E a.c -o a.i
cat a.c | wc -l
5
cat a.i | wc -l
910
  • 编译过程
这个阶段,生成 汇编代码。
gcc -S a.i -o a.s
cat a.s | wc -l
59
这个阶段,生成 目标代码
此过程生成ELF格式的 目标代码
gcc -c a.s -o a.o
file a.o
a.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
链接过程。生成 可执行代码。链接分为两种,一种是 静态链接,另外一种是 动态链接。使用 静态链接的好处是,依赖的 动态链接库较少,对动态链接库的版本不会很敏感,具有较好的兼容性;缺点是生成的程序比较大。使用 动态链接的好处是,生成的程序比较小,占用较少的内存。
gcc a.o -o a
程序运行:
./a
hello


gcc a.c -o a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值