arm linux gcc 编译?arm安装linux
大家好,今天小编来为大家解答以下的问题,关于arm linux gcc 编译,arm安装linux这个很多人还不知道,现在让我们一起来看看吧!
arm-linux-gcc在linux上编译出在arm上运行的代码
为了在Linux上编译出可在ARM处理器上运行的代码,通常使用的是名为arm-linux-gcc的编译器。这个工具主要依赖于GNU工具链,它包括了多种编译器,链接器以及其它支持库。
如果您需要在Windows操作系统下使用arm-linux-gcc进行编译,那么您需要在Windows环境中安装一个兼容的编译环境。您可以寻找第三方提供的Windows兼容版本,或者安装一些在Windows上运行的虚拟环境,如Cygwin或者MinGW,这些环境模拟了Linux的运行环境,允许您在Windows下使用Linux工具,包括arm-linux-gcc。
至于ARM和MIPS架构的代码编译,arm-linux-gcc通常支持ARM架构,而对于MIPS架构的代码编译,您可以寻找支持MIPS架构的gcc版本,例如MIPS-Toolchain。
Codesourcery是提供嵌入式开发工具链的公司,其官方提供了2010版本的arm-gxx工具链,详情可参阅sourcery.mentor.com/GNU和mentor.com/embedded-software-engineering。这些资源提供了一系列的编译工具,包括arm-linux-gcc,适合在ARM处理器上运行的代码编译。
综上所述,在Linux环境下使用arm-linux-gcc编译ARM处理器的代码是可行的,且针对不同架构的代码编译,您需要选择对应架构的gcc版本。至于在Windows环境下使用,可以通过安装兼容环境或者虚拟机来实现。
如何制作arm-linux-gcc编译工具
一、下载源文件
源代码文件及其版本:
binutils-2.19.tar.bz2, gcc-core-4.4.4.tar.bz2 gcc-g++-4.4.4.tar.bz2 Glibc-2.7.tar.bz2 Glibc-ports-2.7.tar.bz2 Gmp-4.2.tar.bz2 mpfr-2.4.0.tar.bz2mpc-1.0.1.tar.gz Linux-2.6.25.tar.bz2(由于我在编译出错的过程中,根据出错的信息修改了相关的C代码,故而没有下载相应的补丁)
一般一个完整的交叉编译器涉及到多个软件,主要包括bilinguals、cc、glibc等。其中,binutils主要生成一些辅助工具;gcc是用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具,而glibc主要提供用户程序所需要的一些基本函数库。
二、建立工作目录
编译所用主机型号 fc14.i686,虚拟机选的是VM7.0,Linux发行版选的是Fedora9,
第一次编译时用的是root用户(第二次用一般用户yyz),所有的工作目录都在/home/yyz/cross下面建立完成,首先在/home/yyz目录下建立cross目录,然后进入工作目录,查看当前目录。命令如下:
创建工具链文件夹:
[root@localhost cross]# mkdir embedded-toolchains
下面在此文件夹下建立如下几个目录:
setup-dir:存放下载的压缩包;
src-dir:存放binutils、gcc、glibc解压之后的源文件;
Kernel:存放内核文件,对内核的配置和编译工作也在此完成;
build-dir:编译src-dir下面的源文件,这是GNU推荐的源文件目录与编译目录分离的做法;
tool-chain:交叉编译工具链的安装位;
program:存放编写程序;
doc:说明文档和脚本文件;
下面建立目录,并拷贝源文件。
[root@localhost cross]#cd embedded- toolchains
[root@localhost embedded- toolchains]#mkdir setup-dir src-dir kernel build-dir tool-chain program doc
[root@localhost embedded- toolchains]#ls
build-dir doc kernel program setup-dir src-dir tool-chain
[root@localhost embedded- toolchains]#cd setup-dir
拷贝源文件:
这里我们采用直接拷贝源文件的方法,首先应该修改setup-dir的权限
[root@localhost embedded- toolchains]#chmod 777 setup-dir
然后直接拷贝/home/yyz目录下的源文件到setup-dir目录中,如下图:
建立编译目录:
[root@localhost setup-dir]#cd../build-dir
[root@localhost build-dir]#mkdir build-binutils build-gcc build-glibc
三、输出环境变量
输出如下的环境变量方便我们编译。
为简化操作过程。下面就建立shell命令脚本environment-variables:
[root@localhost build-dir]#cd../doc
[root@localhost doc]#mkdir scripts
[root@localhost doc]#cd scripts
用编辑器vi编辑环境变量脚本envionment-variables:[root@localhost scripts]
#vi envionment-variables
export PRJROOT=/home/yyz/cross/embedded-toolchains
export TARGET=arm-linux
export PREFIX=$PRJROOT/tool-chain
export TARGET_PREFIX=$PREFIX/$TARGET
export PATH=$PREFIX/bin:$PATH
截图如下:
执行如下语句使环境变量生效:
[root@localhost scripts]# source./environment-variables
四、建立二进制工具(binutils)
下面将分步介绍安装binutils-2.19.1的过程。
[root@localhost script]# cd$PRJROOT/src-dir
[root@localhost src-dir]# tar jxvf../setup-dir/binutils-2.19.1.tar.bz2
[root@localhost src-dir]# cd$PRJROOT/build-dir/build-binutils
创建Makefile:
[root@localhost build-binutils]#../../src-dir/binutils-2.19.1/configure--target=$TARGET--prefix=$PREFIX
在build-binutils目录下面生成Makefile文件,然后执行make,make install,此过程比较缓慢,大约需要一个15分钟左右。完成后可以在$PREFIX/bin下面看到我们的新的binutil。
输入如下命令
[root@localhost build-binutils]#ls$PREFIX/bin
GCC能否运行于ARM-Linux环境下即GCC能否在ARM平台上运行
简答:
gcc可以运行在arm-linux下。
gcc,可以在arm平台上运行。
详解:
gcc,一般指的是,pc版,x86的平台,
用于嵌入式系统,比如arm的cpu,linux的系统下,是:
本来,一直就可以的,
而且有专门的属于:
交叉编译
简答说就是:
在你的pc端,x86的cpu上,制作出一个交叉编译器
一般叫做arm-linux-gcc
用此arm-linux-gcc去编译你的程序
编译出来的程序,可以运行在嵌入式开发板,比如arm的linux下
极其详尽的解释:
我刚写个教程,你去看就知道了:
交叉编译详解
交叉编译详解
此教程的主要内容包括:
了什么是交叉编译
为何要有交叉编译
什么是工具链
什么是交叉工具链
交叉编译器的名字的命名规则:包括你这里所说的arm-linux-gcc的含义
如何获得交叉编译器
制作交叉编译器的各种工具:简介了常见的crosstool-ng,buildroot,crosstool等等工具
使用已有的交叉编译器和自己手动编译交叉编译器之间的对比
交叉编译方面的心得和注意事项
等你看完了后,建议用crosstool-ng,或者是buildroot去自己编译一个arm-linux的gcc。