安装arm linux gcc(Linux开发板)
很多朋友对于安装arm linux gcc和Linux开发板不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
怎么安装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
这把可以杀人了,开始为你树莓派编译软件吧。
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看是否编译成功
如何安装arm-linux-gcc
1、首先以root用户登入
2、复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里
3、解压命令tar xvzf arm-linux-gcc-4.3.2-C/
注意以上命令必须要有-C而且是大写,后边有个空格也要注意。
4、配置下编译环境路径在控制台下输入 gedit/root/.bashrc等一会出来文本编辑器后在文件最后(最后一行)加上下面代码。
export PATH=/usr/local/arm/4.3.2/bin:$PATH
保存关闭后,注销当前用户,用root账号重新登录系统(使刚刚添加的环境变量生效)。
此时你可以在控制台输入: arm-linux-gcc-v如果安装成功将会输出 arm-linux-gcc的版本号。
若想让它在非超级用户下使用那。首先,以非超级用户登入。
1、输入命令:vi~/.bashrc编辑.bashrc文件,在文件末尾加入如上面的内容
export PATH=/usr/local/arm/4.3.2/bin:$PATH
2、输入命令:gedit/etc/profile
在文件的末尾加上:PATH=/usr/local/arm/4.3.2/bin:$PATH
保存对profile的修改后,执行source/etc/profile就OK了,好了通样先注销当前用户再登录后进入控制台执行arm-linux-gcc-v看看能否执行成功就可以了。
需要解决更多linux问题,详情请看
望采纳