您的位置:首页 > 运维架构 > Linux

DayDayUP_Linux运维学习_交叉编译环境的搭建

2015-06-20 23:28 615 查看
交叉环境的搭建

1 下载arm-linux安装包

下载地址:http://download.csdn.net/download/erujo/8825347

2.解压文件

tar -zxvf arm-linux-gcc-4.4.3.tar.gz -C /


直接解压后就可以,-C / 会让解压的文件自动放在根目录下指定路径,不用管)自动解压到了/opt/FriendlyARM/toolschain/4.4.3

解压arm-linux-gcc-4.4.3.tgz到任意的目录下,进入这个文件夹 当然你也可以将解压后的目录放到任意目录

3 添加环境变量

方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)

vim /etc/bash.bashrc


在最后加上

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin


(路径)(注意等号那边不要有空格)

方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用)

vim /etc/profile


增加路径设置,在末尾添加如下:

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin


方法三:修改/etc/environment文件

vim /etc/environment


原文件应为

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“


将其改为

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.5.1/bin"


关于环境变量问题:

环境变量是什么?例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

如果上面不加入环境变量,要运行arm-linux-gcc这个程序,则每次都要把arm-linux-gcc的完整路径写出来。/usr/local/arm/4.4.3/binarm-linux-gcc 文件名 -o 输出文件名

这样非常的麻烦,所以加到path里面,让电脑知道这个程序在哪里。

4.注册环境变量

立即使新的环境变量生效,不用重启电脑,对应步骤5也有3种方法

方法一:

source /root/.bashrc


或者

./etc/bash.bashrc


方法二:

source /etc/profile


方法三:立即生效

5. 测试是否安装成功

方法一:另开一个终端,输入arm-,然后按两下Tab,如果出现下列信息,则表明安装成功

arm2hpdl arm-linux-gprof

arm-elf-addr2line arm-linux-ld

arm-elf-ar arm-linux-nm

arm-elf-as arm-linux-objcopy

arm-elf-c++ arm-linux-objdump

arm-elf-c++filt arm-linux-populate

arm-elf-elf2flt arm-linux-ranlib

arm-elf-flthdr arm-linux-readelf

arm-elf-g++ arm-linux-size

arm-elf-gcc arm-linux-strings

arm-elf-ld arm-linux-strip

arm-elf-ld.real arm-none-linux-gnueabi-addr2line

arm-elf-nm arm-none-linux-gnueabi-ar

arm-elf-objcopy arm-none-linux-gnueabi-as

arm-elf-objdump arm-none-linux-gnueabi-c++

arm-elf-protoize arm-none-linux-gnueabi-cc

arm-elf-ranlib arm-none-linux-gnueabi-c++filt

arm-elf-readelf arm-none-linux-gnueabi-cpp

arm-elf-size arm-none-linux-gnueabi-ct-ng.config

arm-elf-strings arm-none-linux-gnueabi-g++

arm-elf-strip arm-none-linux-gnueabi-gcc

arm-elf-unprotoize arm-none-linux-gnueabi-gcc-4.4.3

arm-linux-addr2line arm-none-linux-gnueabi-gccbug

–More–

方法二:在终端里输入

arm-linux-gcc -v


这个命令会显示arm-linux-gcc信息和版本,如果出现以下信息则表示安装成功

Using built-in specs.

Target: arm-none-linux-gnueabi

Configured with:/opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure–build=i386-build_redhat-linux-gnu–host=i386-build_redhat-linux-gnu –target=arm-none-linux-gnueabi–prefix=/opt/FriendlyARM/toolschain/4.4.3–with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root–enable-languages=c,c++ –disable-multilib –with-arch=armv4t–with-cpu=arm920t –with-tune=arm920t –with-float=soft–with-pkgversion=ctng-1.6.1 –disable-sjlj-exceptions–enable-__cxa_atexit –with-gmp=/opt/FriendlyARM/toolschain/4.4.3–with-mpfr=/opt/FriendlyARM/toolschain/4.4.3–with-ppl=/opt/FriendlyARM/toolschain/4.4.3–with-cloog=/opt/FriendlyARM/toolschain/4.4.3–with-mpc=/opt/FriendlyARM/toolschain/4.4.3–with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root–disable-nls –enable-threads=posix –enable-symvers=gnu–enable-c99 –enable-long-long –enable-target-optspace

Thread model: posix

gcc version 4.4.3 (ctng-1.6.1)

至此,安装已经全部完成!

附录:常见错误

1

在64系统里执行32位程序如果出现/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory,安装下glic即可

# yum install glibc.i686


前提为已经安装yum源,如果为RHEL则可以采用rpm包安装

# rpm -ivh --nodeps glibc-devel-2.12-1.132.el6.i686.rpm


—nodeps表示忽略包的依赖关系

2

error while loading shared libraries: libz.so.1:

cannot open shared object file: No such file or directory

# yum install zlib.i686


前提为已经安装yum源,如果为RHEL则可以采用rpm包安装

# rpm -ivh --nodeps zlib-devel-1.2.3-29.el6.i686.rpm


—nodeps表示忽略包的依赖关系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: