gcc常用的编译选项

一、程序编译过程

    程序编译的时候,要分四个阶段 :

1、预处理阶段,完成宏定义和include文件展开等工作;

2、根据编译参数进行不同程度的优化,编译成汇编代码;

3、用汇编器把汇编代码进一步生成目标代码;

4、用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件;

二、gcc/g++的编译过程

1.预处理,不生成文件

  [预处理器cpp]
2.将预处理后的文件转换成汇编语言,生成.s的文件      

  [编译器egcs]
3.由汇编变为目标代码(机器代码)生成.o的文件

  [汇编器as]
4.连接目标代码,生成可执行程序

  [链接器ld]

三、gcc常用编译选项

-E       只运行C预编译器cpp,不生成文件

-S       只把文件编译成为汇编代码

-c       只生成object文件,不链接

-o       生成指定的输出文件

-g         生成可被gdb使用的标准调试信息

-IDIR      指定额外的头文件搜索路径DIR

-LDIR      指定额外的库函数搜索路径DIR

-lLIBRARY  指定链接时需要的其它函数库

           “LIBRARY

-w       不生成任何警告信息

    -Wall    生成所有级别的警告信息

-shared  生成支持动态共享库的执行文件

-static  不支持动态共享库,把函数库内容静

          态链接到可执行程序中

-O0      不进行代码优化处理

    -O,O1   进行一般优化,减少大小和时间

    -O2      进一步优化,一般在内核编译时使用

    -O3      较-O2进一步优化

四、arm-linux-gcc常用编译选项 

arm-linux-gcc

arm-linux-objdump

    –D 显示所有段的汇编内容

    -d    显示可执行段的汇编内容

    –m arm 

原文地址:https://www.cnblogs.com/amanlikethis/p/3514255.html