1. 编译:
1.1 环境:
在台式机上安装了linux;
参考手册中的方法建立编译环境(以前用的是arm-linux-gcc3.4.1,现在是4.4.3)
Step1:将光盘目录linux\中的arm-linux-gcc-4.4.3.tgz 复制到某个目录下如tmp\,然后
进入到该目录,或者从网络上下载,地址http://www.arm9.net/download.asp。执行解压命令:
#cd /tmp
#tar xvzf arm-linux-gcc-4.4.3.tgz –C /(实际是-xvzf,少了一个‘-’,后缀不是tgz,而是tar.gz)
注意:C 后面有个空格,并且C 是大写的,它是英文单词“Change”的第一个字母,
在此是改变目录的意思。
执行该命令,将把arm-linux-gcc 安装到/usr/loca/arm/4.4.3 目录。
解压过程如图所示:
Step2:把编译器路径加入系统环境变量,运行命令
#gedit /root/.bashrc
编辑/root/.bashrc 文件,在最后一行添加:
export PATH=$PATH: /opt/FriendlyARM/toolschain/4.4.3/bin
如图,保存退出。
新的设备环境生效:
1、重新登录系统(不必重启机器,开始->logout 即可),使以上设置生效,在命令行输入
arm-linux-gcc –v,会出现如下信息,这说明交叉编译环境已经成功安装。
2、 或者在命令行输入:# source /etc/profile立即使新的环境变量生效,不用重启电脑。
1.2 遇到的问题及其修改
直接make,错误很多,都是:“*.o has EABI version 0, but target myexe has EABI version 5”,
方法:make前先执行make clean
结果:错误只有俩,但还是有,
version 'GLIBCXX3.4.9'not found(required by /usr/local / lib /l ibppl.so.2)version 'GLIBCXX3.4.9'not found(required by /usr/local / lib /l ibppl.so.7) 方法:
1).先验证strings /tmp/libstdc++.so.6|grep GLIBCXX是否有
GLIBCXX_3.4.9,GLIBCXX_3.4.10
目前应该没有,因为该文件是连接到6.0.8,这个版本没有;
从网上下载6.0.10,放到/usr/lib/中,再次验证应该有。
2).之后删除 符号链接:rm /usr/lib/libstdc++.so.6
3)再建立符号链接ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6
4)make clean后,make成功。
注:第一次下载了一个错误的6.0.10,导致还有错误“arm-none-linux-gnueabi-gcc: internal error: bus error(program cc1)
please submit a full bug report”,而且不能进入图形界面!后来才发现下载的文件是错的。正确文件大小为929KB!
2. 执行