交叉编译工具选项说明

arm-linux-gcc

一个c/c++文件要变成可执行文件需要4步:预处理 -> 编译 -> 汇编 -> 链接;

在使用arm-linux-gcc时的常用选项:

可使用的选项 功能描述
-c 预处理、编译和汇编文件,但是不作链接,GCC通过用“.o”替换源文件名的后缀“.c”,“.i”,“.s”等生成OBJ文件(.o文件)
-S 编译后即停止,不进行汇编, 对于每个输入的非汇编语言文件,输出结果是汇编语言文件。默认情况下,GCC通过用“.s”替换源文件名后缀“.c”,“.i”等,产生汇编文件
-E 预处理后即停止,不进行编译
-o 指定输出文件的文件名,无论是预处理、编译、汇编还是链接,这个选项都可以使用
-Wall 基本打开了所有需要注意的警告信息
-nostdlib 不链接系统标准启动文件和标准库文件,只把指定的文件传递给链接器,这个选项常用于编译内核、bootloader等程序,它们不需要启动文件、标准库文件
-g 以操作系统的本地格式产生调试信息,供GDB调试使用
arm-linux-ld

用于将多个目标文件、库文件链接成可执行文件;

”-T“选项,可以直接使用它来指定代码段(-Ttext)、数据段(-Tdata)、bss段(-Tbss)的起始地址,也可以用来指定一个链接脚本,在链接脚本中进行更复杂的地址设置;

注:”-T“选项只用于链接Bootloader、内核等没有底层软件支持的软件,链接运行于操作系统之上的应用程序时,无需指定”-T“选项,它们使用默认的方式进行链接;

arm-linux-objcopy

用来复制一个目标文件的内容到另一个文件中,可以使用不同于源文件的格式来输出目的文件,即可以进行格式转换;

常用arm-linux-objcopy来将ELF格式的可执行文件转换为二进制文件;

格式:-O bfdname 或 --output-target=bfdname(使用指定的格式来输出文件,bfdname是BFD库中描述的标准格式名,例”arm-linux-objcopy -O binary xxx.elf xxx.bin“);

arm-linux-objdump

用于显示二进制文件信息,常用于查看反汇编代码;

常用选项是:

选项 功能描述
-b 指定目标码格式
-D 反汇编所有段
-m 指定反汇编目标文件时使用的架构

例:

  1. 将ELF格式的文件转换为反汇编文件:

    arm-linux-objdump -D elf_file.elf > dis_file.dis

  2. 将二进制文件转换为反汇编文件:

    arm-linux-objdump -D -b binary -m arm bin_file.bin > dis_file.dis

嵌入式Linux应用开发完全手册读书笔记——交叉编译工具选项说明的更多相关文章

  1. 嵌入式Linux应用开发完全手册读书笔记——常用的命令

    嵌入式开发中常用的命令 grep命令 用法:grep [option] PATTERN [FILE...] 例如: 在内核目录下查找包含"request_irq"字样的文件 gre ...

  2. 嵌入式linux应用开发完全手册学习笔记一

    2015.3.25星期三 晴 有两个星期没写学习日记了,找个时间把这段时间做的电子词典和ARM小项目总结一下. 下面的知识点总结,U-BOOT:参考PDF文档:嵌入式linux应用开发完全手册 当虚拟 ...

  3. 嵌入式Linux应用开发完全手册之环境搭建

    @ 目录 0.下载源配置 1.电脑BIOS启动虚拟化 2.linux网卡查看与IP设置 3.windows NAT虚拟网络配置 4.修改 Ubuntu 的 mountd 端口 5.vim设置 6.Mo ...

  4. 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

  5. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  6. Linux内核设计与实现 读书笔记 转

    Linux内核设计与实现  读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...

  7. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  8. 如何使用eclipse进行嵌入式Linux的开发

    如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux ...

  9. 《Kinect应用开发实战》读书笔记---干货集合

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/45029841 作者:ca ...

随机推荐

  1. 使用 tuned/tuned-adm工具动态调优系统CPU性能模式

    1)环境机器品牌:DELL  型号:R620配置:32核 * 1/256 GB*1/300 GB*4() + 1200 GB*2() 系统版本:CentOSLinux release 7.2.1511 ...

  2. css 边框和圆角

    CSS3圆角 border-radius属性 一个最多指定四个border -*- radius复合属性,这个属性允许你为元素添加圆角边框 语法 border-radius:1-4 length|% ...

  3. JetsonTx2刷机

    Jetson TX2是有NVIDIA发布的一款Som(Ssytem on Module)嵌入式设备,该设备包含双核的丹弗2(NVIDIA Denver2)CPU和4个Cortex-A57的ARM核心, ...

  4. 在win10上使用premake工具和vs2017编译运行Box2D源码和Testbed

    1.从github上下载Box2D源码的zip包 2.解压缩zip包 3.从premake网站下载premake5工具,解压后得到premake5.exe 4.将premake5.exe拷贝到Box2 ...

  5. The request was rejected because the URL contained a potentially malicious String ";"报错解决

    报错信息 浏览器中看到的报错 错误摘要: The request was rejected because the URL contained a potentially malicious Stri ...

  6. 《剑指offer》数组专题 (牛客10.22)

    目录 // Q01 二维部分有序数组查找 [善用性质] // Q06 旋转数组中的最小元素 [二分 || 暴力] Q13 调整数组顺序使奇数位于偶数前 / Q19 顺时针打印矩阵 [使用边界变量] / ...

  7. 亿级mongodb数据迁移

    1. 预先准备有效数据单号池,通过单号拉取数据处理 单号表默认为1 01 使用findAndModify 更新单号表状态为 2 读取单号 循环读取100 条 02 通过运单号批量查询 Aladin_W ...

  8. 【VS开发】内存映射文件3

    内存映射文件 内存映射文件,是由一个文件到一块内存的映射.Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping).内存映射文件与虚拟内存有些类似,通过内存映射文 ...

  9. Matlab JPEG详细介绍

    作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切.这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识 ...

  10. OpenCV.学习OpenCV.pdf

    1.Pdf.P160(书.P129) “表5-1:平滑操作的各总类型” 的列名 看起来很模糊,现在先把尽可能看得清的字记录下来: 平滑类型 名称 支持 No 输入数据类型 输出数据类型 简要说明 2. ...