arm-linux-gcc编译选项.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
arm-linux-gcc编译选项

在使用GCC 编译程序时,编译过程分为四个阶段: 1. 预处理(Pre-Processing) 2. 编译(Compiling) 3. 汇编(Assembling) 4. 链接(Linking) Linux 程序员可以根据自己的需要让 GCC 在编译的任何阶段结束,以便检查或 使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以 便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用 的编译器一样,GCC 也提供了灵活而强大的代码优化功能,利用它可以生成执行 效率更高的代码; 以文件example.c 为例说明它的用法 1. arm-linux-gcc:  -o arm-linux-gcc -o example example.c 不加-c、-S、-E 参数,编译器将执行预处理、编译、汇编、连接操作直接 生成可执行代码。 -o 参数用于指定输出的文件,输出文件名为example,如果不指定输出文件, 则默认输出a.out  -c rm-linux-gcc -c -o example.o example.c -c 参数将对源程序example.c 进行预处理、编译、汇编操作,生成example.o 文件,去掉指定输出选项-o example.o自动输出为example.o,所以说在这 里-o 加不加都可以,  -S arm-linux-gcc -S -o example.s example.c -S 参数将对源程序example.c 进行预处理、编译,生成example.s 文件 -o 选项同上  -E arm-linux-gcc -E -o example.i example.c -E 参数将对源程序 example.c 进行预处理,生成 example.i 文件(不同版 本不一样,有的将预处理后的内容打印到屏幕上) 就是将#include,#define 等进行文件插入及宏扩展等操作。  -v arm-linux-gcc -v -o example example.c 加上-v 参数,显示编译时的详细信息,编译器的版本,编译过程等。  -g arm-linux-gcc -g -o example example.c -g 选项,加入GDB 能够使用的调试信息,使用GDB 调试时比较方便  -Wall arm-linux-gcc -Wall -o example example.c -Wall 选项打开了所有需要注意的警告信息,像在声明之前就使用的函数, 声明后却没有使用的变量等。  -l arm-linux-gcc -I /home/include -o example example.c -Idirname: 将 dirname 所指出的目录加入到程序头文件目录列表中。如果 在预设系统及当前目录中没有找到需要的文件,就到指定的dirname 目录中 去寻找。  -static arm-linux-gcc –static -o libexample.a example.c 静态链接库文件, arm-linux-ld 直接指定代码段,数据段,BSS 段的起始地址 -Ttext startaddr -Tdata startaddr -Tbss startaddr 示例: arm-linux-ld –Ttext 0x0000000 –g led.o –o led_elf 使用连接脚本设置地址: arm-linux-ld –Ttimer.lds –o timer.elf $^ 其中timer.lds 为连接脚本 arm-linux-objcopy 被用来复制一个目标文件的内容到另一个文件中,可用于不同源文件的之间的 格式转换 示例: arm-linux-objcopy –O binary –S elf_file bin_file 常用的选项: 1.input-file , outfile 输入和输出文件,如果没有outfile,则输出文件名为输入文件名 2.-I bfdname 或—input-target=bfdname 用来指明源文件的格式,bfdname 是BFD 库中描述的标准格式名,如果没指明,则 arm-linux-objcopy 自己分析 3.-O bfdname 或-

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档