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

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

最终目的为开发图形界面到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库并安装
3编译arm平台用的qt库并安装
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.0
4)cd qt-arm-opensource-src-4.8.0
5)./configure -embedded arm-gnueabi -little-endian -prefix /users/trolltech/qt-4.8.0-arm-gnueabi -qvfb 
6)make
7)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/qmake
Project 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/