GCC编译器及使用

GCC的编译流程

GCC汇编分为4个阶段,预处理、编译、汇编和连接。

各文件后缀说明如下:

后缀描述GCC参数
.cC 源文件
.i预处理的源文件-E
.s编译之后得到汇编语言的源文件-S
.o汇编之后的二进制文件-C

比如我们有一个test.c文件,结果输出为Hello,World


预处理

输入指令 gcc -E test.c -o test.i   (-o之后的表示为命名)

输出得到一个预处理后的文件test.i,会把头文件展开

编译

把刚才的test.i文件,进行如下处理:gcc -S test.i -o test.s

生成test.s后用vim编译器打开

可以发现,我们这里得到的是一个汇编文件,方便接下来的汇编变为二进制的操作。

汇编

把以上的test.s文件进行汇编操作,输入gcc -C test.s -o test.o,就会得到test.o的汇编文件

结果如上图,会出现以上的二进制代码。
 

连接

最后就是连接操作,输入如下指令:gcc test.o -o aa,就会生成一个aa可执行文件。

打开我们生成的aa文件,正常输出了Hello,World!

简化流程

以上流程是为了让自己更熟悉过程的实现,实际运用中,我们也可以直接使用连接的步骤,系统会默认完成前面三步。代码如下:
直接使用 gcc test.c -o aa,就可以生成我们想要的aa文件了。

GCC参数

以上指令搬运B站up主:爱编程的大丙。

GCC参数的使用

1、gcc test.c -I +文件路径  -I是指定include包含的头文件的路径
2、gcc test.c -D +宏的名称 这里可以指定生成一个宏文件
在这个.c文件中,如果有宏定义DEBUG的存在,就会打印出“我是一个程序员....”

如果没有的话则不会打印,在这使用-D指令生成一个宏定义可以看到,有宏定义之后成功打印了出来“我是一个程序猿....”

GCC和G++的区别和使用

1、不管是GCC还是G++,都可以编译C程序,编译规则和参数都是适用的。

2、G++可以直接编译C++程序,而GCC编译C++还需要加上其他的参数 -lstdc++

3、不管是GCC还是G++都可以定义_cplusplus宏

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值