ubuntu20.04 gcc

gcc

查看系统中gcc版本

gcc -v

准备被编译的程序

main.c

#include <stdio.h>

int main(void)
{
    printf("hello world\n");
    return 0;
}

编译命令

在该main.c 所处的文件夹下打开终端

执行

gcc main.c -o test

将main.c编译为可执行程序test,其中-o参数用于指定目标文件的名称。

执行该文件

./test

结果

不加 -o test

执行

gcc main.c

结果

 说明在不指定目标文件的名称时,默认生成的文件为a.out,执行该文件与执行test结果一致

了解至此,以满足初学者的诉编译上的诉求,之后侧重于学习c语言相关语法即可。

更多编译上的事

编译四步骤:

  1. 预处理
  2. 编译
  3. 汇编
  4. 链接

预处理

执行命令

gcc -E main.c

可看到终端上有很多打印,该命令使用-E参数,将编译过程停留在预处理之后,显示在终端上的打印为main.c程序的预处理结果

预处理结果较多,我们仍可以使用-o参数将其内容保存至对应的文件中

gcc main.c -E -o preprcess.i

通过preprcess.i文件即可了解该main.c的预处理的结果,预处理后源程序被修改,但仍然为文本文件,形式仍是代码的形式。

同样的使用命令

gcc main.c -S -o comp.s

可得到预处理与编译两步骤之后的结果,该结果为一个汇编文件,此时虽然仍是文本文件,但需要汇编相关的知识才能理解

gcc main.c -c -o asse.o

经历了汇编之后,代码已被转换问二进制文件,此时已经无法正常阅读。

gcc asse.o -o test

最后,将其与标准库链接并生成可执行程序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值