TOP

Ubuntu7.04下arm交叉编译
2014-11-23 22:32:51 】 浏览:10083
Tags:Ubuntu7.04 arm 交叉 编译


使qtopia和qte在我的机子上顺利地跑并解决相关的冲突问题用了4天,谨以此文作为总结。
//注意编译器版本要与相应的qtopia版本对应
//注意相关的库要齐全,否则装qtopia报错
//!!!!注意不要随便修改启动脚本文件~/ .bashrc和 /etc/ld.so.conf,环境变量的的设置自己写一个脚本(shell)文件
//注意tmake后要自己修改一下Makefile


一。安装qtopia和qte
按照SBC2410嵌入式Linux开勑指南.pdf的做法去弄,一直没有成功过,最后发现这里面有错误,而且只是针对Ret Hat,对与ubuntu要特别处理。
发现不同的版本对于编译器(gcc,g++)是有要求的,一般编译过程中遇到奇怪的报错和Warning是因为编译器版本太高的缘故。
//解决办法
安装gcc-2.95 和g++-2.95
由于原来就有gcc,所以我是这样做的
cd /usr/bin
sudo cp ./gcc ./gcc_backup
sudo cp ./g++ ./g++_backup //先把原来的版本4.x保存起来
sudo cp ./gcc-2.95 ./gcc
sudo cp ./g++-2.95 ./g++ //把默认的编译器改为 2.95


//结果:Warming少了,但是还是一直有同样的错误
make -C libraries/qtopia
make[1]: Entering directory `/opt/FriendlyARM/SBC2410/x86-qtopia/qtopia/src/libraries/qtopia'
/opt/FriendlyARM/SBC2410/x86-qtopia/qt/bin/uic passwordbase_p.ui -o ./passwordbase_p.h
make[1]: /opt/FriendlyARM/SBC2410/x86-qtopia/qt/bin/uic:命令未找到
make[1]: *** [passwordbase_p.h] 错误 127
make[1]: Leaving directory `/opt/FriendlyARM/SBC2410/x86-qtopia/qtopia/src/libraries/qtopia'
make: *** [libraries/qtopia] 错误 2
//关键make[1]: /opt/FriendlyARM/SBC2410/x86-qtopia/qt/bin/uic:命令未找到


//解决办法
google /bin/uic:命令未找到
发现是因为缺少库的问题
xlibs-dev libfreetype6-dev uuid-dev lib.jpeg62-dev libqt3-mt libpam0g-dev libpng12-dev
libbluetooth1-dev libpcsclite-dev pkg-config jpeg-6b
Ubuntu就有这个特点,可定制,所以很多库原来没有安装,不像FC那样全都装了


//结果
uic终于装上了,以后安装一切顺利。


二。运行qtopia
//问题
运行时正常,但不正常退出会造成很多其他软件用不了,重启,进不了X
开始上网问都不知道什么原因,造成重装系统,最后在irc上知道可以不用重装系统,重装xserver-xorg就行了
进入recovery 模式
把/etc/ld.so.conf加上去的那几句删了!!!
apt-get remove xserver-xorg
apt-get remove nvidia-glx
apt-get install xserver-xorg
apt-get install nvidia-glx
重启,可以进X了。
最后发现原因:是由于/etc/ld.so.conf 加上去的几句造成冲突
//解决办法
自己写一个shell脚本,运行qtopia时先执行这个shell脚本
vi $HOME/shell/qt.sh
export LD_LIBRARY_PATH=/opt/FriendlyARM/SBC2410/x86-qtopia/qt/lib:/opt/FriendlyARM/SBC2410/
x86-qtopia/qtopia/lib:
/usr/X11R6/lib:/usr/lib/sane:/usr/lib/mysql:$LD_LIBRARY_PATH


它的功能跟 . set_env一样,设置环境变量,只不过qt.sh 是设置动态链接库。
//结果:
qtopia很稳定地运行在我的机子上



Ubuntu7.04下arm交叉编译 https://www.cppentry.com/bencandy.php?fid=54&id=24095

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux SHELL中的变量详述 下一篇Java代码实现MySQL数据库的备份与..