arm-linux-gcc 安装?arm版本的ubuntu系统
大家好,今天来为大家解答arm-linux-gcc 安装这个问题的一些问题点,包括arm版本的ubuntu系统也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
怎么安装arm-linux-gcc4.8
CrossBuild很蛋疼的,以目标内核2.6.x为例,我们需要以下基本包:
binutils-2.23.1.tar.bz2
gcc-4.8.2.tar.bz2
glibc-2.18.tar.bz2
glibc-linuxthreads-2.5.tar.bz2
gdb-7.6.1.tar.bz2
linux-2.6.34.14.tar.xz
mpfr-3.1.2.tar.bz2
mpc-1.0.1.tar.gz
gmp-5.1.3.tar.bz2
因为编译过程很费时,你要在bash配置文件中直接声明环境变量:
vim~/.bashrc
export TARGET=arm-linux-gnueabi
export PREFIX=/usr/local/arm/4.8.2
export TARGET_PREFIX=$PREFIX/$TARGET
export PATH=$PATH:$PREFIX/bin
#source~/.bashrc
以便下次工作继续恢复现场。
工具链创建:
先来安装mpfr、mpc、gmp。#号表示在root下工作。
#tar-xjf gmp-5.1.3.tar.bz2&&cd gmp-5.1.3
#mkdir build&& cd build&&\
../configure--prefix=/usr/local/gmp--build=x86_64-linux-gnu&&\
make&& make install
OK,gmp done,Next,搞搞mpfr:
#tar-xjvf mpfr-3.1.2.tar.bz2&& cd mpfr-3.1.2
#../configure--build=x86_64-linux-gnu--prefix=/usr/local/mpfr--with-gmp=/usr/local/gmp&&\
make&&make install
OK, mpfr done, Next we build mpc:
#tar-xzvf mpc-1.0.1.tar.gz&& cd mpc-1.0.1
mkdir build&& cd build
#../configure--build=x86_64-linux-gnu--prefix=/usr/local/mpc--with-gmp=/usr/local/gmp--with-mpfr=/usr/local/mpfr&&\
make&&make install
After, we need to copy linux-kernel-headers:
xz-d linux-2.6.34.14.tar.xz
tar-xvf linux-2.6.34.14.tar
cd linux-2.6.34.14
make menuconfig
这里我们不作任何个性,直接保存退出。
#make include/linux/version.h
#mkdir-p$TARGET_PREFIX/include
#cp-r./include/linux/$TARGET_PREFIX/include
#cp-r./include/asm-generic/$TARGET_PREFIX/include
#cp-r./arch/arm/include/asm/$TARGET_PREFIX/include
然后编译binutils:
#tar-xjvf binutils-2.23.1.tar.bz2
#cd binutils-2.23.1
#mkdir build&& cd build
#../configure--prefix=$PREFIX--target=$TARGET
#make
#make install
$TARGET得到一大堆工具,我就不一一介绍了。
接下来为ARM平台编译不带链接库的原初编译器,这一步称作恐龙蛋生小鸡。
解开tar-xjvf gcc-4.8.2.tar.bz2,并把mpfr-3.1.2.tar.bz2、mpc-1.0.1.tar.gz、gmp-5.1.3.tar.bz2也解开,去掉版本号放到gcc源目录下。
先删除 gcc下上述几个包,如果存在的话:
rm-rf mpfr-3.1.2 mpc-1.0.1 gmp-5.1.3
然后解包,并移入gcc下:
#tar-xjvf gmp-5.1.3.tar.bz2
#mv gmp-5.1.3 gmp
#mv./gmp./gcc-4.8.2
#tar-xjvf mpfr-3.1.2.tar.bz2
#mv mpfr-3.1.2 mpfr
#mv./mpfr./gcc-4.8.2
#tar-xzvf mpc-1.0.1.tar.gz
#mv mpc-1.0.1 mpc
#mv./mpc./gcc-4.8.2
可以编译gcc了:
#cd gcc-4.8.2
#mkdir build&& cd build
#../configure--prefix=$PREFIX--target=$TARGET--without-headers--enable-languages=c--disable-threads--with-newlib--disable-shared--disable-libmudflap--disable-libssp--disable-decimal-float&&\
make all-gcc&& make install-gcc&& make all-target-libgcc&&\
make install-target-libgcc
如果没出错的话,这里的预编译就快搞好了,擦把汗先。
#tar-xvf glibc-2.18.tar.xz
#tar-xvf glibc-linuxthreads-2.5.tar.bz2--directory=./glibc-2.18
# cd glibc-2.18
# mkdir build
# cd build
# CC=$TARGET-gcc
#export CFLAGS="-g-O2-march=arm"
# ln-s/usr/local/arm/4.8.2/lib/gcc/arm-linux-gnueabi/4.8.2/libgcc.a/usr/local/arm/4.8.2/lib/gcc/arm-linux-gnueabi/4.8.2/libgcc_eh.a
这里编译好的glibc就是for arm的glibc了。
创建config.cache配置文件
# vim config.cache
libc_cv_forced_unwind=yes
libc_cv_c_cleanup=yes
libc_cv_arm_tls=yes
#../configure--host=$TARGET--target=$TARGET--prefix=$TARGET_PREFIX--enable-add-ons--disable-profile--cache-file=config.cache--with-binutils=$PREFIX/bin--with-headers=$TARGET_PREFIX/include
#make all
#make install
预编译环境搭好,我擦已经下班了,明天继续。
好了,为正式开始 arm铸刀:
# cd gcc-4.8.2/build/
# rm-rf*
#../configure--prefix=$PREFIX--target=$TARGET--enable-shared--enable-languages=c,c++
# make
# make install
这就是arm版的gcc了
编译gdb
# tar-xvf gdb-7.6.1.tar.bz2
# make
# make install
创建链接
# cd$PREFIX/bin
# ln-s arm-linux-gnueabi-addr2line arm-linux-addr2line
# ln-s arm-linux-gnueabi-ar arm-linux-ar
# ln-s arm-linux-gnueabi-as arm-linux-as
# ln-s arm-linux-gnueabi-c++ arm-linux-c++
# ln-s arm-linux-gnueabi-c++filt arm-linux-c++filt
# ln-s arm-linux-gnueabi-cpp arm-linux-cpp
# ln-s arm-linux-gnueabi-elfedit arm-linux-elfedit
# ln-s arm-linux-gnueabi-g++ arm-linux-g++
# ln-s arm-linux-gnueabi-gcc arm-linux-gcc
# ln-s arm-linux-gnueabi-gcc-4.6.3 arm-linux-gcc-4.6.3
# ln-s arm-linux-gnueabi-gcov arm-linux-gcov
# ln-s arm-linux-gnueabi-gdb arm-linux-gdb
# ln-s arm-linux-gnueabi-gdbtui arm-linux-gdbtui
# ln-s arm-linux-gnueabi-gprof arm-linux-gprof
# ln-s arm-linux-gnueabi-ld arm-linux-ld
# ln-s arm-linux-gnueabi-ld.bfd arm-linux-ld.bfd
# ln-s arm-linux-gnueabi-nm arm-linux-nm
# ln-s arm-linux-gnueabi-objcopy arm-linux-objcopy
# ln-s arm-linux-gnueabi-objdump arm-linux-objdump
# ln-s arm-linux-gnueabi-ranlib arm-linux-ranlib
# ln-s arm-linux-gnueabi-readelf arm-linux-readelf
# ln-s arm-linux-gnueabi-run arm-linux-run
# ln-s arm-linux-gnueabi-size arm-linux-size
# ln-s arm-linux-gnueabi-strings arm-linux-strings
# ln-s arm-linux-gnueabi-strip arm-linux-strip
这把可以杀人了,开始为你树莓派编译软件吧。
如何安装arm-linux-gcc
arm-linux-gcc是基于arm架构的linux平台交叉编译工具。在安装时主要有以下几步:
最常见的首先要下载arm-linux-gcc安装包,或者也可以从网上下载arm-linux-gcc的源码。
进入Linux,将当前目录设为arm-linux-gcc的下载目录,并且输入tar-xzf arm-linux-gcc-4.4.3.tar.gz,同时将文件解压,解压后会有一个opt的文件夹。如下图所示:
在/usr/local/中建立一个名为arm的文件夹,同时在终端中输入命令:cd/usr/local/,并且点击回车键;再次输入命令:mkdir arm,建立arm目录,并修改该文件夹的属性为rwx,最后输入命令:chmod 777 arm,如下图:
在Linux终端中输入命令:sudo cp-r/opt/FriendlyARM/toolschain/4.4.3/usr/local/arm,同时将之前解压得到的opt文件压下的源码,复制到上一步中创建的arm文件夹下
到这里已经基本安装完成但是还要注意以下事项:
为了避免每次使用arm-linux-gcc时都要输入它所在的完整路径,所以要修改一下环境变量$PATH。通常需要在终端中输入:sudo gedit/etc/profile,打开profile文件,在最后一行加上“export PATH=$PATH:/usr/local/arm/4.4.3/bin”然后保存文件。如图所示,
为了使新的环境变量生效需要输入:source/etc/profile。然后再输入:echo$PATH查看环境变量,如图:
最后输入arm-linux-gcc-v查看版本信息,如果出现下图中版本信息则表示安装成功。
ubuntu下怎么安装arm-linux-gcc
1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/song/software,如下图,记住这个路径,等会还会用到。
2、使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图
通过下图可以看到解压成功了,并且解压后的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,这个存放路径可得记住,如下图
3、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim/etc/profile编辑profile文件,添加环境变量。
在profile中最后一行添加: export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图32行
编写完保存就好了
4、使用命令:source/etc/profile使环境变量生效
5、在终端上输入命令 arm-linux再按Tab键,可以显示出命令列表,说明环境变量设置成功了
6、使用命令:arm-linux-gcc-v会出现下面的错误提示:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
说是出现这种问题的原因是由于Ubuntu12.04用的是64位的,解决方法就是使用命令:sudo apt-get install ia32-libs装一些32位的库
7、待安装完32位的库之后,再使用命令:arm-linux-gcc-v,这一次就成功了
8、验证,编译一个hello.c文件
使用命令:arm-linux-gcc hello.c-o hello看是否编译成功