arm-linux-gcc选项

1.可执行文件生成过程:pre-processing, compilation, assembly, linking;
2.预处理pre-processing:
使用arm-linux-cpp工具将要include的头文件插入原文件,宏定义展开,根据条件编译指令选择要使用的代码,最后生成一个“.i”文件;
3.编译compilation:
使用cc1(不是arm-linux-cc1)将“.i”文件翻译成汇编代码“.s”文件;
4.汇编assembly:
使用arm-linux-as将汇编代码翻译成一定格式的机器码,在linux系统上一般是ELF目标文件(OBJ文件)“.o”文件;
5.连接linking:
使用arm-linux-ld将OBJ文件和系统库的OBJ文件、库文件连接起来,生成可执行文件;
生成可执行文件hello举例:arm-linux-gcc -o hello hello.c

选项含义remark(均可使用-o选项改目标名)
-c预处理、编译、汇编生成OBJ文件,默认.o文件,不link
-E预处理
-S编译生成汇编文件,默认.s文件
-o file指定输出文件名为file预处理、编译、汇编、连接都可使用
-v详细显示处理过程link时会link进一些默认库,即使没-l选项
-Wall显示警告信息
-g加入gdb可使用的调试信息
-O0不优化编译
-O或-O1或-O2或-O3优化编译,编译时间加长比如编译器减少目标码大小及执行时间
-llibrarylink名为library的库文件库文件真正名为liblibrary.so
-nostartfiles不link系统标准启动文件比如不link文件crti.o
-nostdlib不link系统标准启动文件和标准库仅传递指定文件给linker
-static静态link共享库到可执行文件导致可执行文件size大
-shared指定或 link生成共享库文件
-I dirdir目录作为第一个寻找以“#include <>”定义的头文件的目录查找顺序:dir–>/usr/include–>/usr/local/include
-L dirdir目录作为第一个寻找库文件的目录查找顺序:dir–>/lib–>/usr/lib–>/usr/local/lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值