今天突然发现qtopia的4.4及以上版本改为了qt-extended,即qt-embedded-4.4.x相当于qtopia-core,qt-extended相当于桌面。由于编译一次需要很长时间,于是尝试直接进行mips的交叉编译,越来越感觉到高处不胜寒,网上可以查到的有价值的参考文献少之又少,尤其是国内,国外看到有人也在尝试编译,但遇到和我一样的问题,有人过于着急甚至愿意pay to get trouble fixed。
本人终于交叉编译成功了,但运行时出现了问题,卡住了,很是郁闷。有点想放弃了,感觉trolltech公司在这方面做得不太好,或做得很好但只对commercial version版用户提供技术支持。
首先下载,目前有两个版本,4.4.1和4.4.2,我编译的是后者,前者我也下了,居然源码目录不一样,前者多一个apps目录,并且网上阐述的目录结构与实际的不一样,实际的目录结构中有ui目录,但文档中并未提到,文档中提到的demos目录,实际并不存在,而demos目录下有一个很重要的browser。在4.4.2目录结构中,能够找到webkit的痕迹,在qt-extended-4.4.2/qtopiacore/qt/src/3rdparty/webkit下,但由于最后运行没有成功,尚不不知道如何使用。本人将在后面的时间里,再尝试一次,如不行,尝试直接交叉编译存在qt-embedded\demos\browser的源码,如果成功,也不失一种方式,但不太乐观。Qt的版本太多,不同的版本差异很大,各种各样的问题都可能出现。
Tar zxvf qt-extended-opensource-src-4.4.2.tar.gz
Mkdir build
Cd build
../qt-extended-4.4.2/configure -xplatform linux-mips-g++ -arch mips -release -displaysizes 240x320 -remove-module modem -image /work/qte4.2_dest -prefix /work/qte4.2_dest/ -remove-module bluetooth -remove-module drm -remove-module infrared -build-qt -extra-qt-config "-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg" -extra-qtopiacore-config '-depths 16,24 '
bin/qbuild
bin/qbuild image
在运行过程中,出现了几个库找不到,分别是libpng12.so libasound.so librt.so,可以从交叉编译器所在的目录下找到缺少的库并拷贝到嵌入式根目录下的lib下,但librt.so却始终无法解决,如果是2.2.4版本,则报GLIBC_2.2 is required,如果是2.2.5或2.3.6,则提示GLIBC_PRIVATE not defined等错误。有几个重要的文档值得参考,configure Options (Qt Embedded).htm,configure Options qt-extended.htm等。
重要的参考文献:
【1】http://qtextended.org/modules/devices/
【2】
阅读(4336) | 评论(11) | 转发(0) |