版本为---arm-2009q3.tar.bz2
虚拟机---ubuntu10.4
指定相应的安装路径,如/usr/local/mushan_arm,将安装包解压到该目录下:tar -jxvf arm-2009q3.tar.bz2(这个是当前路径中执行)。OK,此时的应用程序就被安装在/usr/local/mushan_arm/arm-2009q3/bin目录下了。
怎么测试是否安装成功?在bin目录下执行./arm-none-linux-gnueabi-gcc -v 。 如果安装成功,此时会打印出相应的版本号,如:
好了。那怎么利用gcc进行编译一个.C文件呢?那就带路径进行编译咯。如下执行:
/usr/local/mushan_arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc test.c
如果每次编译都带上这个路径,太麻烦了,也记不住。咋办?平时执行ls、pwd等命令时,咋不这么复杂的?那是这行命令所在的路径都已经导出到环境变量中了。
怎么导出其环境变量?执行:export PATH=/usr/local/arm/arm-2009q3/bin:$PATH 注意路径名。此时就可以执行./arm-none-linux-gnueabi-gcc test.c 。 但是,在其他的终端执行时,就会出错,报告找不到该命令arm-none-linux-gnueabi-gcc ,那还得重新执行一次环境变量的导出,是的,这样就又可以了?那每次打开终端都这么执行,是不是累呢? 怎么办? .bashrc文件就是用来解决这个问题。 每个终端打开的时候,.bashrc都会被执行,所以我们添加export PATH=/usr/local/arm/arm-2009q3/bin:$PATH到.bashrc文件中,这样每次终端打开时,就会帮我们导出环境变量,就可以了。
恩。 arm-none-linux-gnueabi-gcc命令名字是不是有点长,不好记,而且如果碰到版本不一样的是不是容易出错? 那就给他创建符号链接吧。
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
以后就可以直接执行arm-linux-gcc test.c 。