QT交叉编译环境的搭建(一)

时间:2021-06-28 09:26:15

最终目的为开发图形界面到pda中,边学习边实践,现在终于把需要的qt库和程序编译好了,过程很曲折,回忆起来有不少弯路其实是可以避免的。现在把前段时间的编译过程总结一下。下一步就是配置环境变量,编译和运行一个测试程序了。



第一部分:编译过程: 1下载qt-everywhere-opensource-src-4.8.0.tar.gz,解压到/users目录下。下载地址:http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.8.0.tar.gz 2编译x11平台用qt库并安装 官方帮助文档:http://developer.qt.nokia.com/wiki/Support_for_Linux_X11 3编译arm平台用的qt库并安装 http://developer.qt.nokia.com/wiki/Support_for_Embedded_Linux
4编译qvfb并安装 帮助文档http://developer.qt.nokia.com/doc/qt-4.8/qvfb.html 5 在第2)步中解压的目录中./tools/qvfb下编译qvfb,编译完成后会在./bin下生成qvfb程序,将其拷贝到qt-x11的安装目录下


第二部分:操作过程

编译x11平台用qt库并安装/编译qvfb并安装

1)cd /users 2)gunzip qt-everywhere-opensource-src-4.8.0.tar.gz     tar xvf qt-everywhere-opensource-src-4.8.0.tar 3)mv qt-everywhere-opensource-src-4.8.0  qt-x11-opensource-src-4.8.0 4)cd qt-x11-opensource-src-4.8.0 5)./configure -prefix /users/trolltech/qt-4.8.0-x11 -qvfb 6)make 7)make install 8)cd ./tools/qvfb 9)../../bin/qmake  10)make 11)cd ../../bin 12)察看是否有qvfb,ls -l qvfb 13) cp qvfb /users/trolltech/x11 编译x11平台用qt库并安装 在编译之前需要先安装linux-arm-gcc编译器 1) 2)上 3)mv qt-everywhere-opensource-src-4.8.0  qt-arm-opensource-src-4.8.04)cd qt-arm-opensource-src-4.8.05)./configure -embedded arm-gnueabi -little-endian -prefix /users/trolltech/qt-4.8.0-arm-gnueabi -qvfb 6)make7)make install
第三部分:遇到的问题
1)编译X11时,webkit不能编译通过,主要原因makefile中包含了-Werror选项。 解决办法修改对应工程目录下的工程文件。添加QTM 2)配置x11时出现, rhel1:/users/qt-x11-opensource-src-4.8.0/src/3rdparty/webkit/Source/WebCore% ../../../../../bin/qmakeProject MESSAGE: Disabling video due the lack of GLib/Gio/GStreamer.该问题不影响编译,目前还没有解决。 3)编译qvfb时出现重复定义的问题,工程文件中两次包含了qlock.cpp,取消一次即可 qlock.cpp:(.text+0x2b0): multiple definition of `QLock::QLock(QString const&, char, bool)'4)运行时为黑屏,会报如下错误:该问题下阶段调试测试程序时看是否有影响?QLock::QLock: Cannot get semaphore /tmp/qtembedded-oracle/QtEmbedded-0 'd' (2, û���Ǹ�


解释:

 -Werror 选项 
在处理警告方面,另一个常用的编译选项是 -Werror。它要求 gcc 将所有的警告当成错误进行处理,这在使用自动编译工具(如 Make 等)时非常有用 。如果编译时带上 -Werror 选项,那么 gcc 会在所有产生警告的地方停止编译,迫使程序员对自己的代码进行修改。只有当相应的警告信息消除时,才可能将编译过程继续朝前推进。

第四部分:需要的其它库

qte中第三方库webkit需要uClibc 0.9.29 库的支持 下载网址:http://uclibc.org/