第一次写技术博客,人家说专业人士应该有这素养,所以写一下。废话不多说,说一下今天的主题。
arm-linux-gcc是从友善之臂下载的4.,4.3版本。
1,安装包放到文件夹/home/share下之后输入命令
tar zxvf 文件名解压
解压出来的文件夹文opt
就是因为这个,问题来了。一开始我是把这文件夹下的文件复制到 /opt文件夹下
cp -a /home/share/opt/FriendlyARM/toolschain /opt
然后设置环境变量,试了和多次但都不成功,让后就是一直问度娘了。最后找到一篇文章http://www.cnblogs.com/yiru/archive/2012/11/15/2771226.html
提到一个友善之臂的文件路径是修改过的,其他一般解压出来的都是 usr文件夹的,这时候灵光一闪觉得可能改一下路劲也许行 于是我就
cp -a /home/share/opt/FriendlyARM/toolschain/4.4.3/ /usr/local
后来证明这关键的一步解决了我之前的问题。
2,打开环境变量配置文件
vi /etc/profile
在最后一行后面加入
export PATH=$PATH:/usr/local/arm/4.4.3/bin
3,输入命令让环境变量生效
source /etc/profile
4,时候检测一下是否安装成功
arm-linux-gcc -v
看见输出版本信息
sing 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)
root@ubuntu:~/hong#
证明安装成功了
5,原本以为可以庆祝了,毕竟是新手刚开始玩这个,自然有点兴奋,但是出现问题
/usr/local/arm/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
root@ubuntu:~/hong# ls -l /usr/lib/libz.so.1
ls: cannot access /usr/lib/libz.so.1: No such file or directory
一开始我还没搞清楚什么回事,只是知道应该是库问题,然后就网上去搜,搞了很久发现原来我的问题和别人不一样,就是缺的库不一样。最后根据这篇文章吧问题搞定了http://blog.csdn.net/newairzhang/article/details/28656693
就是找到缺的库
apt-file search libz.so.1
lib32z1: /usr/lib32/libz.so.1
lib32z1: /usr/lib32/libz.so.1.2.8
libx32z1: /usr/libx32/libz.so.1
libx32z1: /usr/libx32/libz.so.1.2.8
zlib1g: /lib/x86_64-linux-gnu/libz.so.1
zlib1g: /lib/x86_64-linux-gnu/libz.so.1.2.8
是lib32z1,之后安装库
apt-get install lib32z1
不过前提是安装好 apt-
file就是输入
apt-get
install
apt-
file
sudo
apt-
file
update
到这我再去编译,成功了。