- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
我们需要编译出运行在 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”(由于反斜线的作用,引号实际上已
您可能关注的文档
- aplle分析和总结分析和总结.docx
- APPC(4)分析和总结分析和总结.docx
- Appfuse开发教程分析和总结.docx
- Application and Improvement of the Network Simulation Platform分析和总结分析和总结.docx
- APQP控制程序分析和总结.docx
- APQP五个阶段描述.docx
- AQ2.3.1.5悬挑式脚手架评分表.docx
- AQ2.3.1.6门型脚手架检查评分表.docx
- AQ2.3.1.8吊篮脚手架检查评分表.docx
- AQ2.3.1.9附着式升降脚手架(整体提升架或爬架)检查评分表.docx
- 2025年广东省外语艺术职业学院单招职业倾向性测试题库带答案(典型题).docx
- 2025年包头钢铁职业技术学院单招职业倾向性测试题库(考点梳理).docx
- 2025年兰州石化职业技术学院单招职业倾向性测试题库附答案(b卷).docx
- 2025年合肥滨湖职业技术学院单招职业倾向性测试题库(历年真题).docx
- 2025年包头职业技术学院单招职业适应性测试题库(综合卷).docx
- 2025年南昌应用技术师范学院单招职业技能测试题库附答案(b卷).docx
- 2025年吉林职业技术学院单招职业倾向性测试题库附答案(a卷).docx
- 2025年南昌影视传播职业学院单招职业技能测试题库附答案(实用).docx
- 2025年合肥财经职业学院单招职业适应性测试题库完整参考答案.docx
- 2025年包头铁道职业技术学院单招职业倾向性测试题库含答案(研优卷).docx
最近下载
- 2022山东能源集团中级人才库选拔上岸笔试历年难、易错点考题附带参考答案与详解.docx
- 统编版(2024)新教材七年级道德与法治下册第一单元《珍惜青春时光》每课时探究训练(含答案)汇编(含六套题).docx VIP
- 必威体育精装版部编版四年级语文下册第八单元习作《故事新编》精品课件PPT.ppt VIP
- 食品安全自查、从业人员健康管理、进货查验记录、食品.docx VIP
- 大模型推理加速的优化实践-2024全球机器学习技术大会.pdf
- GB50858-2013 园林绿化工程工程量计算规范.docx
- 三亚太阳湾柏悦酒店宴会服务研究.docx
- 钢结构工程计量与计价培训资料.pptx VIP
- 中国普通流通纪念币完整目录(127枚)(1984年-2023年).pdf VIP
- 2025年科级领导干部任前廉政法规知识考试题(附答案).pdf VIP
文档评论(0)