Gcc的初级使用

本文介绍GCC编译器的基础命令及应用实例,包括如何编译、链接多个源文件生成可执行文件,如何生成汇编文件及目标文件等。同时提供了一些常用的GCC命令选项说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. Gcc的基本命令

Gcc是linux环境下的编译器,也是linux c程序的编译命令,下面实例它的一些应用:
gcc file.c会在当前目录下生成一个a.out文件,也就是file.c文件对应的可执行文件,这个命名是默认的。

gcc –o finalfile sourcefile1.c,sourcefile2.c,sourcefile3.c,,,将后面的若干源代码文件编译链接生成可执行的finalfile文件。-o选项用来指定输出文件的文件名。也可以 gcc source1.source2.c ... -o main


gcc –S sourcefile.c 生成源代码文件对应的汇编文件sourcefile.s。


gcc –c sourcefile.c编译并且汇编该代码,产生.o的二进制目标文件


gcc –Og sourcefile.c使用编译优化级别1编译程序。g级别为1~3,级别越大优化效果越好,但编译时间越长.


Gcc –E sourcefile.c –o sourcefile.i将sourcefile文件预处理生成的文件输出到sourcefile.i文件中


以上命令可以组合使用,如我想优化代码,又想生成汇编代码,(现有hello.c文件),则可以使用gcc –O1 –S hello.c –o hello.o。

二、扩展:

gcc对部分文件的后缀约定规则: 
  .c为后缀的文件,C语言源代码文件; 
  .a为后缀的文件,是由目标文件构成的档案库文件; 
  .C,.cc或.cxx 为后缀的文件,是C++源代码文件; 
  .h为后缀的文件,是程序所包含的头文件; 
  .i 为后缀的文件,是已经预处理过的C源代码文件; 
  .ii为后缀的文件,是已经预处理过的C++源代码文件; 
  .m为后缀的文件,是Objective-C源代码文件; 
  .o为后缀的文件,是编译后的目标文件; 
  .s为后缀的文件,是汇编语言源代码文件; 
      .S为后缀的文件,是经过预编译的汇编语言源代码。

  要查看机器代码文件,需要使用到反汇编器(disassembler)的程序。这些程序根据机器代码产生一种类似汇编代码的格式。在linux系统中,带‘-d’命令行标志着程序OBJDUMP可以充当这个角色。

(这里 由于objdump -d hello.c执行之后反汇编代码会直接显示在屏幕终端上,所以我们将这些内容进行重定向,保存在一个.ds(写者自定义的,便于区别))文件里

cat hello.ds 

部分内容显示如下


更多参数参见man gcc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值