请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
首页 社区 运维 怎么安装arm-linux-gcc4.8

怎么安装arm-linux-gcc4.8

猿梦 2022-9-13 21:57:36
CrossBuild很蛋疼的,以目标内核2.6.x为例,我们需要以下基本包:binutils-2.23.1.tar.bz2gcc-4.8.2.tar.bz2glibc-2.18.tar.bz2glibc-linuxthreads-2.5.tar.bz2gdb-7.6.1.tar.bz2linux-2.6.34.14.tar.xzmpfr-3.1.2.tar.bz2mpc-1.0.1.tar.gzgmp-5.1.3.tar.bz2因为编译过程很费时,你要在bash配置文件中直接声明环境变量:vim ~/.bashrcexport TARGET=arm-linux-gnueabiexport PREFIX=/usr/local/arm/4.8.2export TARGET_PREFIX=$PREFIX/$TARGETexport PATH=$PATHPREFIX/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 installOK,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 installOK, mpfr done, Next we build mpc:#tar -xzvf mpc-1.0.1.tar.gz && cd mpc-1.0.1mkdir 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 installAfter, we need to copy linux-kernel-headers:xz -d linux-2.6.34.14.tar.xztar -xvf linux-2.6.34.14.tarcd linux-2.6.34.14make 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.cachelibc_cv_forced_unwind=yeslibc_cv_c_cleanup=yeslibc_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这把可以杀人了,开始为你树莓派编译软件吧。

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册