当前位置:首页 » 编程软件 » 交叉编译器安装

交叉编译器安装

发布时间: 2022-01-09 04:53:16

㈠ 如何安装arm-liunx交叉编译环境

sh ./arm-elf-tools-20040427.sh安装
----------------------------------------------
一、准备工作

首先需要一台运行linux操作系统的PC以完成我们的编译工作。

其次要准备如下一些源文件。

1、源文件准备

binutils-2.14.tar.gz

ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz

gcc-core-2.95.3.tar.gz

ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz

gcc-g++2.95.3.tar.gz

ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-g++-2.95.3.tar.gz

glibc-2.2.4.tar.gz

ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gz

glibc-linuxthreads-2.2.4.tar.gz

ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.4.tar.gz

linux-2.4.21.tar.gz

ftp://ftp.kernle.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.gz

patch-2.4.21-rmk1.gz # linux kernel patch for arm

ftp://ftp.arm.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-2.4.21-rmk1.gz

binutils-2.14.tar.gz这个压缩包包含有ld,ar,as等一些产生或者处理二进制文件的工具。

gcc-core-2.95.3.tar.gz这个压缩包是GCC的主体部分,GCC是GNU Compiler Collection的简称,顾名思义,它能够编译很多种高级语言,例如C、C++,java等,而这个压缩包中含有C编译器,及公共部分,而对其他语言的支持,采用另外的压缩包单独发布。

gcc-g++2.95.3.tar.gz,这个压缩包就是为使GCC能够编译C++程序而单独发布的。

glibc-2.2.4.tar.gz,libc是很多用户层应用都要用到的库,kernel和bootloader不需要这个库的支持,这个库主体部分封装在这个压缩包内。

glibc-linuxthreads-2.2.4.tar.gz,这是Libc用于支持Posix线程而单独发布的一个压缩包。

linux-2.4.21.tar.gz,这个压缩包就是Linux的内核。

patch-2.4.21-rmk1.gz,这个压缩包是用来给Linux内核打补丁,以使其可以支持ARM的硬件平台。

2、工作目录搭建

我们创建如下的目录树结构

mkdir arm

mkdir tool-chain

mkdir build-dir

mkdir src-dir

mkdir setup-dir

mkdir kernel

arm这个目录是我们的最顶层工作目录,我们所有的编译工作都在这里完成。

tool-chain这个目录是我们交叉编译工具的安装位置,它下面的bin子目录存放我们创建好的编译器,汇编器,连接器,以及编译好的C库也会安装到这个目录之下。

setup-dir这个目录用来存放我们下载的压缩包。

src-dir这个目录用于存放binutils,gcc,glibc解压之后的源文件。

kernel这个目录用来存放内核文件,对内核的配置、编译工作将在这个目录中完成。

build-dir用来编译src-dir中的源文件,具体就是binutils,gcc,glibc的编译工作将在这个目录下完成。这种源文件目录和编译目录分离的编译方式是GNU所推荐的。

cd ./src-dir

tar –xvzf ../setup-dir/ binutils-2.14.tar.gz

tar –xvzf ../setup-dir/ gcc-core-2.95.3.tar.gz

tar –xvzf ../setup-dir/ glibc-2.2.4.tar.gz

tar –xvzf ../setup-dir/ glibc-linuxthreads-2.2.4.tar.gz –directory=./glibc-2.2.4

这样我们在src-dir目录下就形成了3个源文件目录binutils-2.14,gcc-core-2.95,3,glibc-2.2.4,其中分别存放着binutils tools,gcc,glibc的源代码。接下来我们到build-dir中创建3个与这三个源文件目录对应的编译目录。

cd ../build-dir

mkdir ../build-dir/build-binutils

mkdir ../build-dir/build-gcc

mkdir ../build-dir/build-glibc

我们将在这三个目录中完成对binutils tools, gcc, glibc的配置和编译工作。下面还要把内核文件解压到kernel目录下,并打补丁。

cd ../kernel

tar –xvzf ../setup-dir/ linux-2.4.21.tar.gz

cd ./linux-2.4.21

patch –p1 < ../../setup-dir/ patch-2.4.21-rmk1

二、开始创建

1、 确定几个系统变量

cd ../../

export TARGET=arm-linux

export PREFIX=../arm/tool-chain

export TARGET_PREFIX=$PREFIX/$TARGET

export KERNEL_SOURCE_LOCATION=../arm/kernel/linux-2.4.21

export PATH=$PREFIX/bin:$PATH

几个系统变量经常要用到,TARGET定义了目标机,PREFIX是工具链的安装目录,KERNEL_SOURCE_LOCATION是内核文件位置。

TARGET这个变量对于ARM体系的目标机来说取值为arm-linux,对于其他体系结构的机器如ppc,mips的取值的详细清单可以参见glibc目录下的INSTALL文档.

2、 创建binutils

运行如下命令来创建binutils

cd ./build-dir/build-binutils

configure ../../src-dir/binutils-2.14/configure –target=$TARGET –prefix=$PREFIX

make

make install

这时$PREFIX/bin下创建了一些文件,包括arm-linux-ld,arm-linux-as等。

3、 编译内核

cd ../../kernel/linux-2.4.21

改Makefile文件使

ARCH = arm

CROSS_COMPILE=arm-linux-

make menuconfig

在System Types中选择正确的硬件类型

make dep

之后执行如下操作

mkdir $TARGET_PREFIX/include

cp dR $KERNEL_SOURCE_LOCATION/include/arm-asm \

RGET_PREFIX/include/asm

cp dR $KERNEL_SOURCE_LOCATION/include/linux \

RGET_PREFIX/include/linux

4、 创建boot-trap gcc,这个GCC没有glibc库的支持,所以只能用于编译内核,bootloader等,后面创建C库也要用到这个编译器,所以创建它主要是为创建C库做准备,如果只想编译内核和bootloader那么,就可以到此结束。

cd ../../build-dir/build-gcc

../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX \

--with-headers=$ERNEL_SOURCE_LOCATION/include –enable-language=c \

--disable-threads

然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在

TARGET_LIBGCC2_CFLAGS中添加如下两个定义

-Dinhibit-libc –D__gthr_posix_h

make

make install

这时$PREFIX/bin下创建了一些文件,主要创建了arm-linux-gcc。

5、 创建gblic

cd ../build-glibc

export CC=arm-linux-gcc

../../src-dir/glibc-2.2.4/configure –host=$TARGET –prefix=$TARGET_PREFIX \

--enable-add-ons

make

make install

将glibc库安装完之后,我们要到$TARGET_PREFIX/lib这个目录下修改libc.so文件,将其中

GROUP(/lib/libc.so.6 /lib/libc_noshared.a)

这个命令脚本中的/lib 的绝对路径去掉, 也就是改为如下的形式

GROUP(libc.so.6 libc_noshared.a)

这样下一步创建完整的编译器时,才不至于导致错误.

6、 创建功能健全的GCC,并创建G++

在成功创建了libc之后,我们就可以创建功能丰富的GCC编译器了,并且可以创建支持编译C++程序的G++。

cd ../../src-dir

tar –xvzf ../setup-dir/ gcc-g++2.95.3.tar.gz

cd ../build-dir/build-gcc

export CC=gcc

../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX \

–enable-language=c,c++

然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在

TARGET_LIBGCC2_CFLAGS中去除如下两个定义

-Dinhibit-libc –D__gthr_posix_h

make

make install

7,至此我们成功的创建了ARM Linux的交叉编译工具。

------------------------------------------------------
可以去www.arm16.com看看

㈡ 虚拟机ubuntu14.04怎么安装交叉编译器

虚拟机ubuntu14.04怎么安装交叉编译器,解答如下
开始安装(建议大家新建一个文件夹),然后将文件复制到新建的文件夹中
输入命令:
sudo
tar
xvzf
arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
安装完成后,输入ls命令,可以看到一个opt文件夹,如下图
修改环境变量,把交叉编译器的路径加入到PATH:
利用tab键的补齐功能进入该路径,如下图
输入pwd命令,查看当前路径的绝对路径
/home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1/bin

㈢ ubuntu怎么安装arm交叉编译器

1、下载文件:
安装包:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
2、开始安装(建议大家新建一个文件夹),然后将文件复制到新建的文件夹中

输入命令: sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

安装完成后,输入ls命令,可以看到一个opt文件夹,

3.修改环境变量,把交叉编译器的路径加入到PATH:
利用tab键的补齐功能进入该路径
输入pwd命令,查看当前路径的绝对路径
/home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1/bin

㈣ 在linux中安装交叉编译器时的解包问题

具体操作步骤如下:
1. 下载
在GCC网站上( 3.3.1。可供下载的文件一般有两种形式:gcc-3.3.1.tar.gz和 2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
2. 解压缩
根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):
% tar xzvf gcc-3.3.1.tar.gz
或者
% tar jxvf 2
新生成的gcc-3.3.1这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。
在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开 ml阅读。
3. 建立目标目录
目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。
例如,可以这样建立一个叫 gcc-build 的目标目录(与源目录${srcdir}是同级目录):

% mkdir gcc-build
% cd gcc-build
以下的操作主要是在目标目录 ${objdir} 下进行。
4. 配置
配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${srcdir}目录相同。
配置是通过执行${srcdir}下的configure来完成的。其命令格式为(记得用你的真实路径替换${destdir}):
% ${srcdir}/configure --prefix=${destdir} [其它选项]
例如,如果想将GCC 3.3.1安装到/usr/local/gcc-3.3.1目录下,则${destdir}就表示这个路径。
% ../gcc-3.3.1/configure --prefix=/usr/local/gcc-3.3.1 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java
将GCC安装在/usr/local/gcc-3.3.1目录下,支持C/C++和JAVA语言,其它选项参见GCC提供的帮助说明。
5. 编译
% make
这是一个漫长的过程。

6. 安装
执行下面的命令将编译好的库文件等拷贝到${destdir}目录中(根据你设定的路径,可能需要管理员的权限):
% make install
至此,GCC 3.3.1安装过程就完成了。
6. 其它设置
GCC 3.3.1的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在lib下、头文件在include下等。由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。
6.1 gcc、g++、gcj的设置
要想使用GCC 3.3.1的gcc等命令,简单的方法就是把它的路径${destdir}/bin放在环境变量PATH中。我不用这种方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。
首先,查看原来的gcc所在的路径:
% which gcc
在系统上,上述命令显示:/usr/bin/gcc。因此,原来的gcc命令在/usr/bin目录下。可以把GCC 3.3.1中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符号连接:
% cd /usr/bin
% ln -s ${destdir}/bin/gcc gcc33
% ln -s ${destdir}/bin/g++ g++33
% ln -s ${destdir}/bin/gcj gcj33
这样,就可以分别使用gcc33、g++33、gcj33来调用GCC 3.3.0的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。

㈤ 如何搭建交叉编译环境

交叉编译环境就是在Windows下的东西拿到Linux下编译运行吧,我个人是在Linux启动了samba服务器,然后将文件夹映射到Windows下,在Windows下使用vc 6.0编程序然后到Linux下编译的。不知道能不能对你有些帮助。

下载的rpm包,可以使用rpm -ivh 包路径进行安装

㈥ Linux系统中如何安装交叉编译器

交叉编译器通常以 arm-none-linux-gnueabi.tar.bz2 这样的名称发布(不同厂家的不同开发平台,交叉编译工具链的实际名称可能有所差别,请以实际为准),解压命令:
vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2
如果希望解压到一个指定的目录,可以先将 arm-none-linux-gnueabi.tar.bz2 压缩包复制到目标目录,然后进入目标目录再运行解压命令,也可以在任意目录解压,通过-C 指定目标目录。假定希望解压到“/home/ctools/”目录,则命令如下:
vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2 -C /home/ctools/

在终端中添加环境变量,需要每次打开终端都设置,也很麻烦。可以考虑将设置的过程添加到系统配置文件中。/etc/profile 是系统全局的配置文件,在该文件中设置交叉编译器的路径,能够让登录本机的全部用户都可以使用这个编译器。
打开终端,输入“sudo vi /etc/profile”命令,打开/etc/profile 文件,在文件末尾添加:
export PATH=$PATH:/home/ctools/arm-2011.03/bin/
然后输入“. /etc/profile”(点+空格+文件名),执行 profile 文件,使刚才的改动生效。如果没有书写错误,此时打开终端,输入 arm-none-linux-gnueabi-,然后按键盘 TAB 键,同样可以看到很多 arm-none-linux-gnueabi-开头的命令。
这些周立功那边很多的,不知道你有没去看过。

㈦ 如何在linux虚拟机里安装交叉编译

安装Arm-Linux交叉编译器正确的方法:
首先我用的是天嵌自带的交叉编译器EABI-4.3.3_EmbedSky_20100610.tar.bz2,
1. 首先建一个存放交叉编译器的目录,我建的目录的绝对路径是:/opt/TQ (TQ就是我建的目录)
2. 解压EABI-4.3.3_EmbedSky_20100610.tar.bz2:
tar xjvf EABI-4.3.3_EmbedSky_20100610.tar.bz2

该文件解压后,就会在TQ这个目录中生成两个目录:opt,usr;
3. 添加环境变量 :
在/etc/profile中添加
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /opt/TQ/opt/EmbedSky/4.3.3/bin/
fi
添加完后 source /etc/profile 使他生效;
4. 在控制台执行以下命令:
cp /opt/TQ/opt/EmbedSky/4.3.3/bin /usr/local/arm

总结:第3步和第4步这两步少了一步就会出现以下错误:
arm-none-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory

经验:若在解压时 用下面的命令:
tar xjvf EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C/

就可以省去第四步
-C / :的意识是解压到指定目录,这里指根目录,由于该压缩包内部的目录结构本身包含usr/local/arm,所以解压到根目录实际上就是把文件解压到/usr/local/arm文件夹下。

㈧ ubuntu怎么安装交叉编译工具链

. 解压 arm-linux-gcc-3.4.1.tar.bz2
#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2

解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下

# cd usr/local/

#cp -rv arm /usr/local/

现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了

3. 修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一)

方法一:修改/etc/bash.bashrc文件

#vim /etc/bash.bashrc

在最后加上:

export PATH=$PATH:/usr/local/arm/3.4.1/bin

export PATH

㈨ 在linux中安装交叉编译器时的问题

从命令看,你是少打了个空格,应该是ls /usr/local/arm,
至于文件夹最好放在第一个图所示路径

㈩ 如何安装交叉编译器 详细�0�3

1.将源码拷至目录文件: a) 使用命令:cp 3.4.1.tar.bz2 /lishangfeng 拷贝交叉工具的文件至目录文件; 2.将源文件进行解压: a) 使用命令:tar xvf 3.4.1.tar.bz2 解压源文件,得到目录文件(3.4.1); 3.查看目录下的文件: a) 使用命令:ls b) arm-linux bin include info lib libexec man tmp 4.修改环境变量: a) 打开终端,查看当前环境变量: b) 输入命令:echo $PATH c) 添加新的环境变量: 使用命令:PATH = $PATH:/lishangfeng/3.4.1/bin (这样添加只针对本终端有用) d) 若想将环境变量永久添加,可以使用以下方法: 1)打开更改脚本文件: 2)使用命令:gedit /root/.bashrc 3)在文件的最后一行加上如下代码: export PATH=$PATH:/lishangfeng/3.4.1/bin 4)保存退出,重新启动linux 系统即可。 5.至此交叉编译器就安装成功了。 制作人:尚贤博学 于2013 年3 月3 号西安石油大学制作完成(希望能帮助到广大热爱嵌入式的朋友们)

热点内容
安卓电视上如何下载电视家 发布:2024-09-21 08:29:57 浏览:293
php字符串引号 发布:2024-09-21 08:17:03 浏览:783
androidduration 发布:2024-09-21 08:17:03 浏览:402
大话西游2华山论剑什么时候开的服务器 发布:2024-09-21 08:00:15 浏览:530
编程马鞍数 发布:2024-09-21 07:48:32 浏览:726
新建文件夹dos命令 发布:2024-09-21 07:44:13 浏览:131
舞蹈解压介绍 发布:2024-09-21 07:40:04 浏览:973
qq如何显示密码 发布:2024-09-21 07:22:26 浏览:566
安卓导航如何调大mlc音量 发布:2024-09-21 06:59:21 浏览:34
洛奇解压中发生错误 发布:2024-09-21 06:53:30 浏览:293