嵌入式ARM+Linux 多个不同版本的交叉编译器的切换方法

2019-07-13 04:37发布

        工欲善其事,必先利其器!软件工具的选择与使用,是开发人员必须重视的事情。         我这里在VM虚拟机安装的CentOS 6.5,开发编译基于ARM的嵌入式Linux,安装了几个版本的交叉编译器,以下是如何切换各个版本:永久生效,而不是换个控制台或是换个用户或是重新启动系统失效!!!
        就像Windows一样,VM虚拟机Linux也可以设置一环境变量,这样执行命令,就不用输入全部的路径了,否则,还需要记住大量的路径,很麻烦。首先安装交叉编译器。 我使用的为: arm-2010q1-202-arm-none-linux-gnueabi.tar.bz2(目前测试下来,最稳定了,不高也不低,不旧也不新。)
解压缩:
[root@zhangsz Desktop]# tar  xjvf   arm-2010q1-202-arm-none-linux-gnueabi.tar.bz2 -C /opt/ 最好创建在/opt/目录下。
设置环境变量: [root@zhangsz Desktop]# gedit /etc/profile 这里为了永久生效,如在控制台shell输入:arm- 点tab键,就可以得到arm-none-linux-gnueabi-  



设置好环境变量后
[root@zhangsz Desktop]# source /etc/profile
然后注销或是重启系统!(否则只有在当前控制台有效!) 重新登录后永久生效!!

如果更改另一个版本的,只要在/etc/profile里注释掉不用的,设置好你想要的就可以了。
然后验证效果:
[root@zhangsz Desktop]# arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/2010q1-release-linux-lite/src/gcc-4.4-2010q1/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 2010q1-202' --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/2010q1-release-linux-lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/2010q1-release-linux-lite/obj/host-libs-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/2010q1-release-linux-lite/obj/host-libs-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/julian/2010q1-release-linux-lite/obj/host-libs-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/julian/2010q1-release-linux-lite/obj/host-libs-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/2010q1-release-linux-lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/2010q1-release-linux-lite/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) 
[root@zhangsz Desktop]# 

安装切换成功,可以使用了。