您的位置:首页 > 编程语言 > Qt开发

qtopia-free-2.2.0编译记录

2010-03-24 19:34 323 查看
环境ubuntu9.10 ,编译器eldk41_gcc40,ubuntu系统是重新装过的,没有安装任何额外库

1.生成x86版本及qvfb等工具

tar -xzf qtopia-free-2.2.0.tar.gz

cd qtopia-free-2.2.0

./configure -qpe "-prefix=/usr/local/qtopia"

make

make install

整个编译过程中,会因为ubuntu默认没有下面几个库而出现错误,依次安装即可

build-essential 包括了开发工具,当然是x86版本的,也就是pc linux用的
libjpeg62-dev x86版本的jpeg库
uuid-dev x86版本的uuid库
libxext-dev x86版本的X库

apt-get install pk_name

2.arm版本

tar -xzf qtopia-free-2.2.0.tar.gz

cd qtopia-free-2.2.0

vi qtopia/mkspecs/qws/arm-linux-g++/qmake.conf

修改

QMAKE_LIBS_QT = -lqte



QMAKE_LIBS_QT = -lqte -lpng -lts -lz -luuid -ljpeg

当然,不修改的话,需要将马上用到的额外库放在编译器lib目录下

cd qtopia/src/libraries/qtopia
cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h

vi qtopia/src/qt/qconfig-qpe.h

增加

#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW

是qt支持触摸屏,当然没有即是不支持

去掉

#define QT_NO_QWS_CURSOR
#define QT_NO_QWS_MOUSE_AUTO
#define QT_NO_QWS_MOUSE_PC

支持鼠标,当然保留即是不支持

(以上说法并未检验)

cp qtopia/src/qt/qconfig-qpe.h qt2/src/tools

mkdir libs includes

jpeg png z ts uuid等库放到libs,相应头文件放到includes即可,其中z uuid库eldk已经带有,需要自己交叉编译jpeg png ts三个库,

编译方法网络上很多方法

./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 24 -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -no-xft -release -I$PWD/includes -L$PWD/libs" -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 320x240 -I$PWD/includes -L$PWD/libs"

make

make install

之后,在qtopia/image/opt/下生成了qtopia的arm版本

3.x86版本的使用

常用的是qvfb工具和qdesigner工具,这两个工具的使用需要设置LD_LIBRARY_PATH指向qt2/lib,当然任何能找到动态库的方法均可,一般在命令行下运行,能够看到是否是因为动态库so没有而运行失败

qvfb可以使用后,接着模拟运行x86版本的qpe,需要设置LD_LIBRARY_PATH指向生成的动态库即qtopia/image/opt/qtopia/lib,QTDIR和QPEDIR指向生成的qtopia目录即qtopia/image/opt/qtopia即可,同时,需要将qt2/lib下的fonts目录copy到qtopia/image/opt/qtopia/lib/下,此时可以模拟qpe

4.arm版本的使用

需要把安装的qtopia目录整体复制到开发板的任意目录下, 同时所有使用到的第三方库放在qtopia/lib下即可

同3,arm上运行需要设置LD_LIBRARY_PATH QTDIR QPEDIR三个环境变量,QTDIR QPEDIR指向qtopia目录所在位置,LD_LIBRARY_PATH指向qtopia/lib即可

5.减肥

<1>删除部分字体,默认是helvetica,使用fixed即可,-qpe配置加上-fontfamilies fixed即可,除fontdir和fontlots均删除

6.显示中文

显示中文有2个条件,第一是支持汉字字符集,第二是系统有汉字库,qtopia默认没有开启unicode的支持,去掉qtopia/src/qt/qconfig-qpe.h 关于 #define QT_NO_CODECS的定义,即注释掉,即可支持unicode编码,即支持中文,qtopia默认的unifont字体可以显示中文,这样默认unifont字体编译即可;

7.中文化

显示中文和中文化不同,中文化是在程序彻底支持中文,qtopia本身已经做了国际化支持,通过转换机制,使用i18n下语言夹,下面的qm文件进行替换,即可中文化了

8注意:

为了节省空间,一般都要动态生成dev,那么面临一个问题是usb鼠标的热拔插问题,而不定义qtopia的usb鼠标变量,有时候会造成usb与串口冲突,解决办法也很简单,鼠标设备文件设置成mice即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: