【嵌入式开发技术之Qtopia】安装和交叉编译文档(3)——交叉编译Qt各种版本

简介:

2.交叉编译Qt各种版本
1)交叉编译Qtopia2.2.0,使用Arm-linux-gcc3.3.2
首先在myqt下建立dist目录,dist里面再建立include、lib两个目录.先要进行一些支持库的交叉编译。
zlib-1.2.3
$tar zxvf zlib-1.2.3.tar.gz
$ cd zlib-1.2.3/
$./configure --shared
$vi Makefile
对应行改为
CC=/usr/local/arm/3.3.2/bin/arm-linux-gcc
LDSHARED=/usr/local/arm/3.3.2/bin/arm-linux-gcc -shared -Wl,-soname,libz.so.1
CPP=/usr/local/arm/3.3.2/bin/arm-linux-gcc -E
AR=/usr/local/arm/3.3.2/bin/arm-linux-ar rc
RANLIB=/usr/local/arm/3.3.2/bin/arm-linux-ranlib
$make
生成libz.so libz.so.1 libz.so.1.2.3
$cp libz.so* ../dist/lib/
$cp *.h ../dist/include/
$cd ..
然后在settings里的Appearance settings中进行Fonts的选择,在language中选择Chinese即可。
e2fsprogs-1.38
$ tar zxfv e2fsprogs-1.38.tar.gz
$cd e2fsprogs-1.38
$export PATH=$PATH:/usr/local/arm/3.3.2/bin
$./configure --host=arm-linux CC=arm-linux-gcc --enable-elf-shlibs
$make
(生成lib/libuuid.so *)
$cp lib/libuuid.so* ../dist/lib/
Libjpeg-6b
$cd jpeg-6b/
(export PATH=$PATH:/usr/local/arm/3.3.2/bin)
$./configure --host=arm-linux-gcc CC=arm-linux-gcc
$make
$cp *.o ../dist/lib/
$cp *.h ../dist/include/
可以给qt-embedded添加好for arm的libjpeg库.向目录中也拷贝一份: /usr/local/arm/3.3.2/arm-linux/lib
拷贝 jconfig.h jmorecfg.h jpeglib.h 到 /usr/local/arm/3.3.2/arm-linux/include/
$sudo cp jconfig.h jmorecfg.h jpeglib.h /usr/local/arm/3.3.2/arm-linux/sys-include/
libpng-1.2.23
$tar zxvf libpng-1.2.33-no-config.tar.gz
$cd libpng-1.2.23/
(export PATH=$PATH:/usr/local/arm/3.3.2/bin)
$cp scripts/makefile.linux ./Makefile
$vi Makefile
改为
AR_RC=arm-linux-ar rc
CC=arm-linux-gcc
RANLIB=arm-linux-ranlib
ZLIBLIB=../zlib-1.2.3
ZLIBINC=../zlib-1.2.3
$make
$cp libpng12.so ../dist/lib/libpng.so
$cp libpng12.so* ../dist/lib/
$cp *.h ../dist/include/
然后开始正式进行编译qtopia-arm
$tar zxvf qtopia-free-src-2.2.0.tar.gz
$mv qtopia-free-2.2.0/ qtopia-arm
$cd qtopia-arm
$vi qtopia/mkspecs/qws/linux-arm-g++/qmake.conf
将此行
QMAKE_LIBS_QT = -lqte
修改为
QMAKE_LIBS_QT = -lqte -lpng -lz -luuid -ljpeg
$export QTDIR=$PWD/qt2
$export QPEDIR=/home/inno/myqt/qtopia-arm/qtopia
$export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
$export TMAKEDIR=/home/inno/myqt/qtopia-arm/tmake
$export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
$cd qtopia/
$vim src/qt/qconfig-qpe.h
$加入:
$cp src/qt/qconfig-qpe.h ../qt2/src/tools/
$cd $QPEDIR/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
$cd http://www.cnblogs.com/http://www.cnblogs.com/
$export PATH=$PATH:/usr/local/arm/3.3.2/bin
$./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 16 -system-jpeg -system-libpng -system-zlib -gif -thread -no-xft -release -I/home/inno/myqt/dist/include -L/home/inno/myqt/dist/lib -lpng -lz -luuid -ljpeg" -qpe "-xplatform linux-arm-g++ -edition pda -displaysize 480x272 -I/home/inno/myqt/dist/include -L/home/inno/myqt/dist/lib -prefix=/home/inno/myqt/dist/qtopia"
$make
$make install
这样你的qtopia镜像文件系统就在/home/inno/myqt/dist/qtopia下了。然后在dist下建立qt目录,把qtopia- host/qtopia/image/opt/qt下的所有东西复制到qt这个新建的目录下,这是为了安装字体。把qtopia-host/qtopia 下的i18n目录放在dist的qtopia下,这是为了放置翻译文件。
运行:使用NFS将文件夹dist挂载到/mnt/下nfs上文件系统后设置变量
export QTDIR=/mnt/dist/qt
export QPEDIR=/mnt/dist/qtopia
export QWS_MOUSE_PROTO=TPanel:/dev/ts0
export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
设置好环境变量运行,
./qpe
选择语言为Chinese(MainLand)然后在settings里面的Apperance的Font里指定simsun就可以限制正常的中文了,但是大标题的下边会有黑条,英文的也是这样,我也不清楚是怎么回事。
2)Qt-embedded的交叉编译
$tar –xzvf qt-embedded-free-3.3.8.tar.gz
$mv qt-embedded-free-3.3.8 qt-embedded-free-3.3.8-arm
$export QT2DIR=$PWD/qt3-x11
$export QTEDIR=$PWD/qt-embedded-free-3.3.8-arm
$cd $QTEDIR
首先修改 src/embedded/qmouselinuxtp_qws.cpp文件,把"/dev/h3600_tsraw"改成 "/dev/touchscreen/0";然后修改src/embedded/qmouselinuxtp_qws.h文件,增加两个宏定义 "#define QT_QWS_IPAQ"、"#define QT_QWS_IPAQ_RAW" 这是相当关键的,否则可能触摸屏不会动。
$export QTDIR=$QTEDIR
$export PATH=$QTDIR/bin:$PATH
$export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
$cp /usr/local/bin/uic tools/bin
$make clean
$./configure -embedded arm -no-xft -no-ipv6 -no-qvfb -depths 4,8,16,24,32 -no-cups -thread -qt-mouse-linuxtp -qt-gif
$make
这步完成后,我们会在/$QTEDIR/lib/目录下面看到libqte.so libqte.so.3 libqte.so.3.3 libqte.so.3.3.8这四个文件,如果加入了-thread 选项,则会产生libqte-mt.so....我们可以使用file 命令来查看这个库文件是否是我们需要的在开发板上跑的库。
有了这个库以后我们就可以把它拷贝到我们的开发板中相应的库目录下面。


作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

posted @ 2012-01-08 10:46 gnuhpc 阅读( 320) 评论( 0) 编辑 收藏

公告

最早在Blogger上写博客,后来Blogger全网被封K掉,而后在CSDN上写过几年博客,后来CSDN升级博客系统取消了API写作的接口,于是逐步将过去的博文搬家到博客园。

曾经在CSDN博客排名中位列前一百,目前依然是....本博客中所写文字均为原创,网上注明gnuhpc,warmbupt,futuredaemon等文字均出自本人,符合创作共同协议,转载请注明出处,谢谢!

我的联系方式:
weibo: gnuhpc
此地已经荒废
分享到:

昵称: gnuhpc
园龄: 7年9个月
粉丝: 362
关注: 1
< 2012年1月 >
25 26 27 28 29 30 31
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
相关文章
|
9天前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
28 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
8天前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
|
15天前
|
XML 存储 JSON
技术笔记:Qt基础之配置文件(QSettings)
技术笔记:Qt基础之配置文件(QSettings)
14 0
|
16天前
|
调度
技术笔记:QT之深入理解QThread
技术笔记:QT之深入理解QThread
14 0
|
24天前
|
关系型数据库 MySQL 项目管理
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
|
24天前
|
SQL 关系型数据库 MySQL
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
|
24天前
|
SQL 数据可视化 关系型数据库
数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计
数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计
|
24天前
|
安全 BI 数据库
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
|
2月前
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
57 0
|
2月前
|
区块链
【qt】最快的开发界面效率——混合编程3
【qt】最快的开发界面效率——混合编程
49 1