太原缪斯酒吧人均消费:嵌入式 QT GUI 编译环境搭建全过程

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 19:02:12

嵌入式 QT GUI 编译环境搭建全过程-------阿超

   这篇文章是我写的第一篇嵌入式技术文章,其实也不算文章了,只是一个自己学习的总结。在学习QT编译环境搭建时候遇到了很多问题,只要细心就一定能够解决的。因为有纪念价值所以就发上来,如果兄弟们遇到相同的问题都可以来看下。呵呵

 

在网上看了N篇关于QT交叉编译环境的文章,大多都不适合,我也不知道为什么,比较有用的还是阿南写的那篇《嵌入式入门笔记》。总结了以上,写出了个自己的版本,就算是做个纪录吧。

 

所用程序包及版本:

qt-embedded-2.3.7.tar.gz  qtopia-free-1.7.0.tar.gz  qt-x11-2.3.2.tar.gz   tmake-1.1.1.tar.gz

 

基础知识:

Qtopia 是桌面系统应用程序

Qt-e   是应用程序的运行环境(库)

Qt-x11 是编译所需要的工具包 包括UIC,MOC,DESIGNER等

 

宿主机:    都是在linux-g++

1.  编译QT-X11工具包

2.  编译QT-E库

3.  设置环境变量,主义指定平台。

4.  编译基于QT-E库的应用程序   (注意指定编译器)

5.  编译运行 QTOPIA (注意指定平台)

6.  将应用程序添加到桌面系统QTOPIA

 

目标机:    编译器 linux-arm-g++ 配置支持触摸屏

1.  编译QT-X11工具包同宿主机一样,不改变任何项。

2.  编译QT-E库指定编译器以及tmake。增加触摸屏支持。

3.  编译运行基于QT-E的应用程序(开发板测试)--------最终目标

4.  编译QTOPIA

 

指令:

 

编译QT-X11指令:

Cd qt-x11

Export QTDIR=$PWD

Echo yes | ./configure –static –no-xft –no-opengl –no-sm –thread –system-jpeg –system-libpng –gif     (可以用./configure –help  来查看可选参数)

Make –C src/moc

Cp src/moc/moc bin

Make –c src  (在这里会报错,解决方案在后面)

Make –C tools/designer

Make –C tools/qvfb

Cp tools/qvfb/qvfb bin

Strip bin/uic bin/moc bin/designer bin/qvfb

 

错误解决:

在make –c src 部分的时候会报错 qxml.o

解决:修改include/qvaluestack.h 第57行修改为this->remove

 

编译QT-E 指令:

Export QTDIR=$PWD/qt-e

Export QPEDIR=$PWD/qtopia

Export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

Export TMAKEDIR=$PWD/tmake

Export TMAKEPATH=$PWD/tamke/lib/qws/linux-arm-g++

Export PATH=$PWD/tmake/bin:$PATH

将开发板所带配置文件 qconfig-local.h 复制到src/tools/

./configure –xplatform linux-arm-g++ -qconfig local –depths 32 –thread

Make (在这里也会报错)

 

错误解决:

在make 的时候会报错allmoc.o

解决:在src/kernel/qwindowsystem_qws.h 前加入类引用

Class QWSInputMethod;

Class QWSGestureMethod;

 

 

 

 

编译应用程序的指令:

 

环境变量的设定:

Export QTDIR=/home/mick/QTE/HOME/qt-e

Export QPEIDR=/home/mick/QTE/HOME/qtopia

Export LD_LIBRARY_PATH=/home/mick/QTE/HOME/qt-e/lib:$LD_LIBRARY_PATH

Export TMAKEDIR=/home/mick/QTE/HOME/tmake

Export TMAKEPATH=/home/mick/QTE/HOME/tmake/lib/qws/linux-arm-g++

Export PATH=/home/mick/QTE/NEW/tmake/bin:$PATH

 

工程文件:

Progen –n hello –o hello.pro

Tmake –o Makefile hello.pro

Make

 

GUI文件:

Uic –o hello hello.ui

Uic –o hello.cpp –impl hello.h hello.ui

 

错误解决:

编译应用程序的时候会报错,ld returned 1 exit status

解决:将/tmake/lib/qws/linux-arm-g++/的tmake.conf的tmake_link=linux-arm-gcc和tmake_link_shilb=linux-arm-gcc 都改为G++,重新编译即可。