linux交叉编译工具链的安装(2021-5-12)

步骤1:打开虚拟机,在/usr/local/下创建/usr/local/arm文件夹

root@xfj-virtual-machine:/home/xfj# cd /usr/local/      //1
root@xfj-virtual-machine:/usr/local# mkdir arm          //2
root@xfj-virtual-machine:/usr/local# cd arm             //3
root@xfj-virtual-machine:/usr/local/arm# pwd
/usr/local/arm

步骤2:先将安装包从Windows中弄到linux中去。可以用共享文件夹,也可以用Samba,也可以cuteftp。(这里用的共享文件夹)

(1)winshare中首先放入arm-2009q3.tar文件。
在这里插入图片描述
(2)进入/usr/local/arm目录下,将其文件复制到此目录

root@xfj-virtual-machine:/usr/local/arm# cp /mnt/hgfs/winshare/arm-2009q3.tar.bz2 /usr/local/arm                                  //1
root@xfj-virtual-machine:/usr/local/arm# ls     
arm-2009q3.tar.bz2                              //出现,复制成功

步骤3:解压。tar -jxvf arm-2009q3.tar.bz2

// 在此目录下
root@xfj-virtual-machine:/usr/local/arm# pwd
/usr/local/arm

root@xfj-virtual-machine:/usr/local/arm# tar -jxvf arm-2009q3.tar.bz2    //1

步骤4:验证安装是否成功

//1.到达此目录下
root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# pwd
/usr/local/arm/arm-2009q3/bin

//2.执行方法是:./arm-none-linux-gnueabi-gcc -v;
//执行后可以得到一长串输出,其中有“gcc version 4.4.1 ”字样,即表示安装成功。
root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# ./arm-none-linux-gnueabi-gcc -v
bash: ./arm-none-linux-gnueabi-gcc: 没有那个文件或目录

//此时显示没有此文件,但是确实有这个文件,接下来进行解决此问题
root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# ls
arm-none-linux-gnueabi-addr2line  arm-none-linux-gnueabi-g++        arm-none-linux-gnueabi-gprof    arm-none-linux-gnueabi-readelf
arm-none-linux-gnueabi-ar         arm-none-linux-gnueabi-gcc        arm-none-linux-gnueabi-ld       arm-none-linux-gnueabi-size
arm-none-linux-gnueabi-as         arm-none-linux-gnueabi-gcc-4.4.1  arm-none-linux-gnueabi-nm       arm-none-linux-gnueabi-sprite
arm-none-linux-gnueabi-c++        arm-none-linux-gnueabi-gcov       arm-none-linux-gnueabi-objcopy  arm-none-linux-gnueabi-strings
arm-none-linux-gnueabi-c++filt    arm-none-linux-gnueabi-gdb        arm-none-linux-gnueabi-objdump  arm-none-linux-gnueabi-strip
arm-none-linux-gnueabi-cpp        arm-none-linux-gnueabi-gdbtui     arm-none-linux-gnueabi-ranlib

步骤5:产生上述原因为64位的系统运行32位的程序需要安装32位的运行库(我的ubuntu为18.04)。解决方法:在普通用户模式下执行 sudo apt-get install lib32ncurses5 lib32z1 命令或在特权模式下执行 apt-get install lib32ncurses5 lib32z1 安装32位依赖库。

root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# apt-get install lib32ncurses5 lib32z1    //执行此命令即可

步骤6:此时验证即可通过

root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# ./arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/2009q3-respin-linux-lite/src/gcc-4.4/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --disable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2009q3-67' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)                      //成功的标志

步骤7,将工具链导出环境变量

root@xfj-virtual-machine:~# cd /root                         //进入此目录
root@xfj-virtual-machine:~# ls -al
总用量 28
drwx------  3 root root 4096 511 22:33 .
drwxr-xr-x 26 root root 4096 511 23:13 ..
-rw-------  1 root root  698 511 22:37 .bash_history
-rw-r--r--  1 root root 3106 49  2018 .bashrc
drwx------  2 root root 4096 725  2018 .cache
-rw-r--r--  1 root root  148 817  2015 .profile
-rw-------  1 root root 2701 511 22:33 .viminfo
root@xfj-virtual-machine:~# vim .bashrc                       //回车
//在此文件的最后一行添加以下内容
//注意:我们导出这个环境变量是在当前用户,如果你登录时在其他用户下是没用的。
//注意:等号前后没有空格
#******************************************************************************
#添加的内容2021-5-11
export PATH=/usr/local/arm/arm-2009q3/bin:$PATH  

#*****************************************************************************

//添加完之后
root@xfj-virtual-machine:~# source .bashrc      //运行

root@xfj-virtual-machine:~# echo $PATH          //验证
/usr/local/arm/arm-2009q3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

步骤7:为工具链创建arm-linux-xxx符号链接

创建一个脚本文件:mk-arm-linux-.sh
里面内容如下

ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line
ln arm-none-linux-gnueabi-ar -s arm-linux-ar
ln arm-none-linux-gnueabi-as -s arm-linux-as
ln arm-none-linux-gnueabi-c++ -s arm-linux-c++
ln arm-none-linux-gnueabi-c++filt -s arm-linux-c++filt
ln arm-none-linux-gnueabi-cpp -s arm-linux-cpp
ln arm-none-linux-gnueabi-g++ -s arm-linux-g++
ln arm-none-linux-gnueabi-gcc -s arm-linux-gcc
ln arm-none-linux-gnueabi-gcc-4.4.1 -s arm-linux-gcc-4.4.1
ln arm-none-linux-gnueabi-gcov -s arm-linux-gcov
ln arm-none-linux-gnueabi-gdb -s arm-linux-gdb
ln arm-none-linux-gnueabi-gdbtui -s arm-linux-gdbtui
ln arm-none-linux-gnueabi-gprof -s arm-linux-gprof
ln arm-none-linux-gnueabi-ld -s arm-linux-ld
ln arm-none-linux-gnueabi-nm -s arm-linux-nm
ln arm-none-linux-gnueabi-objcopy -s arm-linux-objcopy
ln arm-none-linux-gnueabi-objdump -s arm-linux-objdump
ln arm-none-linux-gnueabi-ranlib -s arm-linux-ranlib
ln arm-none-linux-gnueabi-readelf -s arm-linux-readelf
ln arm-none-linux-gnueabi-size -s arm-linux-size
ln arm-none-linux-gnueabi-sprite -s arm-linux-sprite
ln arm-none-linux-gnueabi-strings -s arm-linux-strings
ln arm-none-linux-gnueabi-strip -s arm-linux-strip
//然后在此目录下执行
root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# pwd
/usr/local/arm/arm-2009q3/bin

root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# source mk-arm-linux-.sh   //执行

//结果如下
root@xfj-virtual-machine:/usr/local/arm/arm-2009q3/bin# ls
arm-linux-addr2line  arm-linux-gdb      arm-linux-sprite                  arm-none-linux-gnueabi-gcc        arm-none-linux-gnueabi-ranlib
arm-linux-ar         arm-linux-gdbtui   arm-linux-strings                 arm-none-linux-gnueabi-gcc-4.4.1  arm-none-linux-gnueabi-readelf
arm-linux-as         arm-linux-gprof    arm-linux-strip                   arm-none-linux-gnueabi-gcov       arm-none-linux-gnueabi-size
arm-linux-c++        arm-linux-ld       arm-none-linux-gnueabi-addr2line  arm-none-linux-gnueabi-gdb        arm-none-linux-gnueabi-sprite
arm-linux-c++filt    arm-linux-nm       arm-none-linux-gnueabi-ar         arm-none-linux-gnueabi-gdbtui     arm-none-linux-gnueabi-strings
arm-linux-cpp        arm-linux-objcopy  arm-none-linux-gnueabi-as         arm-none-linux-gnueabi-gprof      arm-none-linux-gnueabi-strip
arm-linux-g++        arm-linux-objdump  arm-none-linux-gnueabi-c++        arm-none-linux-gnueabi-ld         mk-arm-linux-.sh
arm-linux-gcc        arm-linux-ranlib   arm-none-linux-gnueabi-c++filt    arm-none-linux-gnueabi-nm
arm-linux-gcc-4.4.1  arm-linux-readelf  arm-none-linux-gnueabi-cpp        arm-none-linux-gnueabi-objcopy
arm-linux-gcov       arm-linux-size     arm-none-linux-gnueabi-g++        arm-none-linux-gnueabi-objdump

//结束
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值