【linux】gcc编译器

1.前言

在 Linux 中,C 语言用 gcc 编译;C++ 用 g++ 编译。

2.gcc编译器基本语法

 1.gcc filename.c 
          编译filename.c默认生成a.out可执行程序

 2.gcc filename.c -o filename 
          编译filename.c指定生成文件名为filename的可执行程序

3.gcc编译的4个流程步骤

(ESc   注意大小写,ES写成小写的话会导致汇编出错) 

1.预处理

处理和#号相关的代码
1.头文件展开            #include 
2.宏定义替换            #define 
3.条件编译展开            #if #endif #ifndef #ifdef           
              gcc -E filename.c -o filename.i     

2.编译

将C语言代码编译成汇编代码
                gcc -S filename.c -o filename.s 

                gcc -S filename.i -o filename.s

3.汇编 

将汇编代码编译成二进制程序
                gcc -c filename.c -o filename.o 

                gcc -c filename.s -o filename.o 

4.链接

将多个二进制程序链接成为一个可执行程序
                gcc filename.c -o filename  

                gcc filename.o -o filename           

 记忆:

对于 预处理、编译、汇编 三步的选项分别为 ESc ,可以与键盘上的 esc 键来帮助记忆,区别前两个字母是大写。而生成的文件后缀分别为 iso 可以利用国际标准化组织(ISO)来记忆。

4.gcc选项汇总

  • -E :只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
  • -S :编译到汇编语言,不进行汇编和链接
  • -c :编译到目标代码
  • -o :文件输出到文件
  • -static :此选项对生成的文件采用静态链接
  • -g :生成调试信息。GNU 调试器gdb可利用该信息
  • -shared :此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库
  • -O0 :不做任何优化,这是默认的编译选项。
  • -O1 : 对程序做部分编译优化
  • -O2 :是比O1更高级的选项,进行更多的优化
  • -O3 :比O2更进一步的进行优化
  • -w :不生成任何警告信息
  • -Wall: 生成所有警告信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值