1.在FriendlyARM下载arm-linux-gcc,下载链接为
2.解压arm-linux-gcc.tar.gz
[root@vibexie 4.4.3]# tar -xvzf arm-linux-gcc-4.4.3.tar.gz -C /
该解压默认解压在/opt/目录下
3.将arm-linux-gcc的bin目录添加到环境变量中
我们修改/etc/profile配置文件
[root@vibexie 4.4.3]# vi /etc/profile
修改下面一段代码
-
# Path manipulation
-
if [ "$EUID" = "0" ]; then
-
pathmunge /usr/sbin
-
pathmunge /usr/local/sbin
-
pathmunge /opt/FriendlyARM/toolschain/4.4.3/bin /*我们添加的*/
-
else
-
pathmunge /usr/local/sbin after
-
pathmunge /usr/sbin after
-
pathmunge /opt/FriendlyARM/toolschain/4.4.3/bin after /*这也是添加的*/
-
fi
我们应立即生效此修改操作(这样不用重启也能生效)
[root@vibexie 4.4.3]# source /etc/profile
4.测试是否配置成功arm-linux-gcc
[root@vibexie vibe]# arm-linux-gcc -v
/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc:行15: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: 成功
出现这样的输出表示还没有配置成功,我们看到“
/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录”,这是因为我的linux系统是64位的fedora20,所以我们要安装glibc.i686
[root@vibexie vibe]# yum install glibc.i686
(
有的系统还会有这样的错误error while loading shared libraries: libz.so.1,我们应该yum安装zlib.i686)
成功安装glibc.i686后,再测试
[root@vibexie vibe]# arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.4.3 (ctng-1.6.1)
我们现在尝试编译一个写好目标板程序,进入该程序目录,我们make一下
[root@vibexie code]$ make
arm-linux-gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -ffreestanding -c -o crt0.o crt0.S
/opt/FriendlyARM/toolschain/4.4.3/libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
make: *** [leds.bin] 错误 1
在编译过程中出现了错误,提示未找到/usr/lib/目录下的libstdc++.so.6,这是因为我的系统是64位的fedora20,libstdc++.so.6默认在/user/lib64。我们现在得装i686版的stdlibc++.so.6
[root@vibexie lib64]# yum whatprovides libstdc++.so.6
已加载插件:langpacks, refresh-packagekit
libstdc++-4.8.2-1.fc20.i686 : GNU Standard C++ Library
源 :fedora
匹配来源:
提供 :libstdc++.so.6
libstdc++-4.8.3-7.fc20.i686 : GNU Standard C++ Library
源 :updates
匹配来源:
提供 :libstdc++.so.6
根据以上输出,我们选择安装最新的listdc++ i686版的库,即
libstdc++-4.8.3-7.fc20.i686
[root@vibexie lib64]# yum install libstdc++-4.8.3-7.fc20.i686
安装成功后,我们再make编译一下
[root@vibexie code]# make
arm-linux-gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -ffreestanding -c -o crt0.o crt0.S
arm-linux-gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -ffreestanding -c -o leds.o leds.c
arm-linux-ld -Ttext 0x0000000 crt0.o leds.o -o leds_elf
arm-linux-objcopy -O binary -S leds_elf leds.bin
arm-linux-objdump -D -m arm leds_elf > leds.dis
这样没有报错就编译成功了。同时,我们可以回到/usr/lib/目录下,就有了libstdc++.so.6了。
OK,至此,我们的arm-linux-gcc就配置好了。
阅读(4091) | 评论(0) | 转发(0) |