- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我们需要编译出运行在 ARM 平台上的代码,所使用的交叉编译器为 arm-linux-gcc 。下面将arm-linux-gcc 编译工具的一些常用命令参数介绍给大家。
在此之前首先介绍下编译器的工作过程,在使用 GCC 编译程序时,编译过程分为四个阶段:
预处理(Pre-Processing)
编译(Compiling)
汇编(Assembling)
链接(Linking)
Linux 程序员可以根据自己的需要让 GCC 在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为 今后的调试做好准备。和其它常用的编译器一样,GCC 也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。
以文件 example.c 为例说明它的用法
arm-linux-gcc -o example example.c
不加-c、-S、-E 参数,编译器将执行预处理、编译、汇编、连接操作直接生成可执行代码。
-o 参数用于指定输出的文件,输出文件名为 example,如果不指定输出文件,则默认输出a.out
arm-linux-gcc -c -o example.o example.c
-c 参数将对源程序 example.c 进行预处理、编译、汇编操作,生成 example.0 文件
去掉指定输出选项-o example.o自动输出为 example.o,所以说在这里-o 加不加都可以
arm-linux-gcc -S -o example.s example.c
-S 参数将对源程序 example.c 进行预处理、编译,生成 example.s 文件
-o 选项同上
arm-linux-gcc -E -o example.i example.c
-E 参数将对源程序 example.c 进行预处理,生成 example.i 文件(不同版本不一样,有的将预处理后的内容打印到屏幕上)
就是将#include,#define 等进行文件插入及宏扩展等操作。
arm-linux-gcc -v -o example example.c
加上-v 参数,显示编译时的详细信息,编译器的版本,编译过程等。
arm-linux-gcc -g -o example example.c
-g 选项,加入 GDB 能够使用的调试信息,使用 GDB 调试时比较方便。6.arm-linux-gcc -Wall -o example example.c
-Wall 选项打开了所有需要注意的警告信息,像在声明之前就使用的函数,声明后却没有使
用的变量等。
arm-linux-gcc -Ox -o example example.c
-Ox 使用优化选项,X 的值为空、0、1、2、3
0 为不优化,优化的目的是减少代码空间和提高执行效率等,但相应的编译过程时间将较长并占用较大的内存空间。
arm-linux-gcc -I /home/include -o example example.c
-Idirname: 将 dirname 所指出的目录加入到程序头文件目录列表中。如果在预设系统及当前目录中没有找到需要的文件,就到指定的 dirname 目录中去寻找。
arm-linux-gcc -L /home/lib -o example example.c
-Ldirname:将 dirname 所指出的目录加入到库文件的目录列表中。在默认状态下,连接程序ld 在系统的预设路径中(如/usr/lib)寻找所需要的库文件,这个选项告诉连接程序,首先到-L
指定的目录中去寻找,然后再到系统预设路径中寻找。
arm-linux-gcc –static -o libexample.a example.c
静态链接库文件
gcc 在命令行上经常使用的几个选项是:
-c 只预处理、编译和汇编源程序,不进行连接。编译器对每一个源程序产生一个目标文件。
-o file 确定输出文件为 file。如果没有用-o 选项,缺省的可执行文件的输出是 a.out,目标文件和汇编文件的输出对 source.suffix 分别是 source.o 和 source.s,预处理的 C 源程序的输出是标准输出 stdout。
-Dmacro 或 -Dmacro=defn 其作用类似于源程序里的 #define 。 例如: % gcc -c
-DHAVE_GDBM -DHELP_FILE=\help\ cdict.c 其中第一个- D 选项定义宏 HAVE_GDBM, 在程序里可以用#ifdef 去检查它是否被设置。第二个-D 选项将宏 HELP_FILE 定义为字符串“help”(由于反斜线的作用,引号实际上已
您可能关注的文档
最近下载
- 第6课 欧洲的思想解放运动(新教材课件)-【中职专用】《世界历史》同步精品课堂(高教版2023•基础模块).pptx VIP
- 1000HP钻机总结.doc VIP
- 机械制图(第二版)全套PPT课件.pptx
- (2025秋新版)北师大版二年级数学上册《数学好玩 猜数游戏》PPT课件.pptx
- 江苏省连云港市东海县实验中学2024-2025学年九年级上学期第一次月考语文试题(含答案).pdf VIP
- Sharp夏普扫描仪DW-D20HZ-W DW-D20NZW3 CF-20HZW 3用户手册.pdf
- 2024-2025学年九年级语文上学期第一次月考试卷附答案解析.pdf VIP
- C站JUE-85中文操作说明书-07-9-10.pdf VIP
- 智能融合终端通用技术规范2025.docx
- 2024年中级经济师《经济基础》真题卷(1116下午).pdf VIP
文档评论(0)