GCC编译器

本文详细介绍了GCC编译器的一系列常用选项,包括-E进行预处理、-S生成汇编代码、-c生成目标文件、-o指定输出文件、-O指定优化级别,以及如何通过-g支持调试和-W*处理警告。一步步流程演示了从源代码到可执行文件的完整过程,最后指出直接编译源文件的简洁方式。
摘要由CSDN通过智能技术生成

常用gcc编译选项

选项作用
-E生成预处理文件
-S生成汇编文件
-c生成可目标文件
-o指定生成文件的文件名
-On指定代码优化等级
-g用于gdb调试、objdump
-Wall显示代码中的所有warning行为
-w禁止显示代码中的warning行为
-Werror将代码中的warning行为视为error
-D设置预定义宏
-l链接(link)指定的函数库
-std=c++11指定编译代码的C++标准为C++11

-E-S-c三个选项直接对应着编译的前三个基本阶段

编译预处理(.i)

将源文件main.cc经过预处理后,生成文件。预处理所得文件main.i

g++ -E main.cc -o main.i

编译、优化程序(.s)

main.i文件翻译成一个汇编文件main.s

g++ -S main.cc -o main.s

汇编程序(.o)

运行汇编器,将main.s翻译成一个可重定位目标文件main.o

g++ -c main.s -o main.o

链接程序(.elf)

运行链接器,将main.o中使用到的目标文件组合起来,并创建一个可执行的文件main.

由于main.cc代码没有额外的依赖,因此可以直接输出main文件

g++ main.o -o main

实际上,一步就能够完成上面所有的操作r

g++ main.cc -o main

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值