交叉编译基础知识

前言

交叉编译工具的基础知识


一、交叉编译过程

编译过程

二、选项解释

1.总体选项

-c:预处理、编译和汇编源文件,但不作连接,GCC忽略“-c”选项后面任何无法识别的输入文件名;
-S:编译后即停止,不进行汇编。
-E:预处理后即停止,不进行编译;
-o file:指定输出文件为file.
-v:显示gcc工具的版本信息
-Wall:显示需要注意的警告信息。

2.调试选项

-g:以操作系统的本地格式(stabs、COFF、XCOFF或DWARF)产生调试信息,“-g”选项加入只有GDB才能使用的额外的调试信息;

3.优化选项

-O:对于大函数,优化编译的过程将占用较长时间和相当大的内存。不使用时,只有声明了register的变量才分配使用寄存器。
使用时,编译器会试图减少目标代码的大小和执行时间
-O2:处理设计空间和速度交换的优化选项,几乎执行所有的优化工作。例如不进行循环展开和函数内嵌。
-O3:优化更多,打开了“-finline-functions”选项(把所有简单的函数集成进调用者.编译器探索式地决定哪些函数足够简单,值得这种集成.)
-O0:不优化

4.连接器选项

-llibrary:连接名为library的库文件。搜索目录除了一些系统标准目录外,还包括用户以‘-L’选项指定的路径.指定,-l 选项用’lib’和‘.a’把 library 包裹起来,而且搜索一些目录.
-nostartfiles:不连接系统标准启动文件,而标准库文件仍然正常使用.
-nostdlib:不连接系统标准启动文件和标准库文件.只把指定的文件传递给连接器.
-static:在支持动态连接(dynamic linking)的系统上,阻止连接共享库.该选项在其他系统上无效.
-shared:生成一个共享目标文件,他可以和其他目标文件连接产生可执行文件.只有部分系统支
持该选项.
-Wl,option:把选项 option 传递给连接器.如果 option 中含有逗号,就在逗号处分割成多个选项.

总结

简单的交叉编译一般只需掌握几种常见的编译选项即可,需要深入学习的可参考makefile里面的用法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值