交叉编译工具arm-linux-

1.arm-linux-gcc (与gcc区别是平台不同,arm-linux-gcc编译的文件可以在arm上运行,而gcc编译的不能在arm上执行,能在x86上的执行)

编译流程4个步骤 1:预处理 2:编译 3:汇编 4:链接

1:预处理阶段:Gcc把头文件(如stdio.h)编译进来,用-E查看

指令格式:arm-linux-gcc –E hello.c –o hello.i

2:编译阶段:检查代码的规范性,错误等,把代码翻译成汇编语言,用-s查看

指令格式:arm-linux-gcc –s hello.i(hello.c) –o hello.s

3:汇编阶段:把.s文件转换成目标文件,用-c查看

指令格式:arm-linux-gcc –c hello.s(hello.c/hello.i) –o hello.o

4:链接阶段:系统把函数的实现都做到libc.so.6的函数库中。

指令格式:arm-linux-gcc hello.o(hello.c/hello.i/hello.s) –o hello

运行可执行文件: ./hello

添加头文件:-I dir linux头文件默认放到了“/usr/include/”目录下,当用户希望添加放置在其他位置上的头文件时,就要用“-I dir”选项来指定。例如放在hello.h放在“/root/workplace/”

格式:arm-linux-gcc hello.h -I /root/workplace/ -o hello

添加库文件:-L dir linux头文件默认放到了“/usr/lib/”目录下,当用户希望添加放置在其他位置上的库文件时,就要用“-L dir”选项来指定。例如放在hello.h放在“/root/workplace/”

格式:arm-linux-gcc hello.h -L /root/workplace/ -o hello

GCC所支持的后缀名

Gcc编译选项列表



Gcc警告出错选项列表


2.arm-linux-ld

arm-linux-ld用于将多个目标文件、库文件连接成可执行文件。

-T选项是ld命令中比较重要的一个选项,可以用它直接指明代码的代码段、数据段、bbs段,对于复杂的连接,可以专门写一个脚本来告诉编译器如何连接。

-Ttext addr

-Tdata addr

-Tbss addr

arm-linux-ld -Ttext 0x00000000 crt0.o led_on_c.o -o led_on_c_tmp.o

我们看看它是什么意思:-o选项设置输出文件的名字为

led_on_c_tmp.o;“--Ttext 0x00000000”设置代码段的起始地址为0x00000000;这条指令的作用就是将crt0.o和led_on_c.o连接成led_on_c_mp.o可执行文件,此可执行文件的代码段起始地址为0x00000000。

arm-linux-ld -Ttext 0x30000000 -g key_led.o SDRAM.o -o key_led_elf

3.arm-linux-objcopy

把一种目标文件中的内容复制到另一种类型的目标文件中。一般将elf转化成bin 文件加载到内存中运行,bin文件就是一个纯二进制文件

arm-linux-objcopy -O binary -S key_led_elf key_led.bin

4.arm-linux-objdump

显示一个或者更多目标文件的信息。使用选项来控制其显示的信息,它所显示的信息通常只有编写编译工具的人才感兴趣

arm-linux-objdump -D -m arm key_led_elf > key_led.dis


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 交叉编译工具arm-linux-gcc-3.4.1.tar.bz2是一个用于在x86架构的计算机上编译生成运行在ARM架构处理器上的软件的工具ARM处理器通常用于嵌入式系统和移动设备。 这个工具是一个tar.bz2格式的压缩文件,需要通过解压缩来获取其中的文件。一般的解压缩软件如tar和bzip2可以用来解压这个文件。解压缩后,我们可以得到一个目录,其中包含了交叉编译工具链的各个组件。 这个工具中最关键的组件是arm-linux-gcc,它是一款ARM架构的C编译器。它允许我们在x86架构的计算机上编译ARM平台的C语言源代码,并生成适用于ARM处理器的可执行程序。除了C语言,arm-linux-gcc还支持C++和其他一些常用的编程语言。 使用交叉编译工具arm-linux-gcc,我们可以在开发软件时将代码编译为ARM平台可执行文件,而不需要在ARM设备上进行开发和编译。这样可以提高开发效率并简化调试过程。开发人员可以直接在自己的PC上编写和测试代码,然后使用交叉编译工具生成ARM平台可执行文件,再将其上传到ARM设备上运行。 总之,交叉编译工具arm-linux-gcc-3.4.1.tar.bz2是一个用于在x86架构计算机上编译ARM平台可执行文件的工具链,它提供了一系列的工具和组件,其中最重要的是arm-linux-gcc编译器。使用这个工具,开发人员可以在PC上进行ARM开发和调试,提高开发效率并简化部署过程。 ### 回答2: arm-linux-gcc-3.4.1.tar.bz2是一种交叉编译工具交叉编译是指在一种操作系统上编译运行在另一种操作系统中运行的程序。 arm-linux-gcc-3.4.1.tar.bz2是专门为ARM架构设计的编译工具ARM架构是一种广泛应用于嵌入式设备中的处理器架构。由于ARM处理器具有低功耗、低成本和高性能的特点,因此在移动设备、智能家居、工业自动化等领域得到广泛应用。 arm-linux-gcc-3.4.1.tar.bz2是GNU Compiler Collection(GCC)的一个特定版本。GCC是一种开源的编译器套件,支持多种编程语言,包括C、C++和Fortran等。通过使用arm-linux-gcc-3.4.1.tar.bz2,开发人员可以在主机操作系统(通常是x86架构)上编译适用于ARM处理器的程序。 交叉编译工具arm-linux-gcc-3.4.1.tar.bz2使用.tar.bz2的压缩格式打包。用户需要先解压缩该文件,然后根据安装指南进行安装和配置。安装成功后,用户可以使用该工具链进行ARM架构的程序开发和编译。 在交叉编译过程中,需要设置正确的目标架构和其他相关参数,以确保生成的可执行文件可以在ARM设备上正确运行。交叉编译工具可以生成与目标设备兼容的二进制代码,并处理与特定硬件平台相关的问题,如指令集、内存管理等。 通过使用arm-linux-gcc-3.4.1.tar.bz2,开发人员可以更加方便地进行ARM设备上的软件开发。这个工具链为ARM平台上的开发者提供了编译、链接和调试等必要的工具。它有助于简化开发流程,提高开发效率,并确保生成的程序在ARM设备上的正确运行。 ### 回答3: 交叉编译工具arm-linux-gcc-3.4.1.tar.bz2 是一个用于ARM架构的交叉编译工具交叉编译是指在一种平台上开发、编译和生成另一种平台上可执行的程序。ARM是一种广泛应用于嵌入式设备的处理器架构,通过使用交叉编译工具,开发者可以在PC机上编写并编译ARM架构的程序。 arm-linux-gcc-3.4.1.tar.bz2 是一个tar压缩和bzip2压缩的文件。tar是一种文件打包的格式,bzip2是一种压缩格式。因此,首先需要将该文件解压缩。可以使用tar和bzip2命令来进行解压缩操作。 解压缩后,可以得到一个目录,里面包含了arm-linux-gcc-3.4.1工具链的文件。工具链是一组可以在一台计算机上生成可在另一种架构上运行的程序的工具。 在使用交叉编译工具之前,还需要将工具链的路径添加到系统的环境变量中,这样系统才能够找到正确的工具链。 使用arm-linux-gcc-3.4.1工具链可以在PC机上编写ARM架构的程序,并通过交叉编译生成可在ARM设备上运行的可执行程序。通过交叉编译,开发者可以更方便地开发和调试ARM设备的程序,同时提高了开发效率。 总之,arm-linux-gcc-3.4.1.tar.bz2 是一个交叉编译工具,通过解压缩该文件并配置环境变量后,开发者可以在PC机上编写并编译ARM架构的程序。这样可以简化ARM设备的开发和调试过程,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值