QT开发环境的建立以及QTE4.6.3、tslib1.4的移植过程

简介: 1.首先是建立Linux开发环境1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-227600,安装完成后进行汉化,由于要覆盖文件,所以要先在任务管理器中结束所有有关VMware的进程,然后将汉化文件覆盖到VMware的安装目录,至此VMware虚拟机软件安装完成。

1.首先是建立Linux开发环境
1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-227600,安装完成后进行汉化,由于要覆盖文件,所以要先在任务管理器中结束所有有关VMware的进程,然后将汉化文件覆盖到VMware的安装目录,至此VMware虚拟机软件安装完成。
1.2.虚拟机软件安装成功后,就开始安装Linux操作系统,这里我使用的Ubuntu10.04长期支持版,可以到Ubuntu的官方网站上下载,下载地址为:http://www.ubuntu.org.cn/desktop/get-ubuntu/download/或者http://releases.ubuntu.com/lucid/(第一个不行就使用第二个);下载完成后打开虚拟机,在起始页上点击新建虚拟机,然后选中Ubuntu镜像文件的路径,然后是输入用户名、下一步、最后是定制硬件,可以根据自己需要添加,这里我把内存调整为1G,额外添加了一个串口,最后完成开始自动安装,这个过程是全自动的,基本不需要手动操作,下面我们就是等待安装完成。(安装的快慢跟你的机器配置有关);安装完成,大概用了不到两个小时,但是在登录界面却无法使用键盘。解决方法:(1) 开户屏幕键盘功能 在上图开机界面在右下角单击小人图案,再单击“Universal Access Perferences”,点击“Universal Access Perferences”对话框,在对话框中选中“Use on-screen keyboard”(使用屏幕键盘),以开启屏幕键盘功能,这时会有一个屏幕键盘快速闪过; (2) 重新启动打开屏幕键盘输入密码开启屏幕键盘功能后重新启动系统,这时就可以通过上面的步骤打开屏幕键盘,输入相应的密码 (3) 登录后键盘功能正常使用。 注意在(1)步后没出现软键盘, 需要重启机器。 (4)进入系统之后,要修改/etc/default/console-setup. 的文件内容 原文 XKBMODEL="SKIP" XKBLAYOUT="us" XKBVARIANT="U.S. English" XKBOPTIONS="" 改成 XKBMODEL="pc105" XKBLAYOUT="us" XKBVARIANT="" XKBOPTIONS="" 然后重启,这样在登入界面时就可能使用键盘了。这里我们使用root账户,在命令行输入:sudo passwd root,输入两次密码后添加root账户成功,重启,使用root账户登录,然后是设置软件源,首先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup,而后用gedit或其他编辑器打开: gedit /etc/apt/sources.list,到官方选中合适的源,这里我们选择163的源,具体为:deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse,替换掉文件中所有的内容保存编辑好的文件:,然后,刷新列表:
apt-get update
终端设置小技巧
因为经常会用到终端:所以把终端加到右键菜单:
apt-get install nautilus-open-terminal
至此我们的Linux操作系统基本安装成功。但是语言还是英文,大家可以根据自己喜好是否调整为中文,调整方法,打开system菜单下administration下的language support,出现语言配置对话框,然后你可以选中最下面的installl/removae language安装中文或者其他语言,在调整后重启系统起效!
2.安装开发工具QT
首先需要说明的是,我们把QT的安装分为两部分,第一、安装在LinuxPC机下开发的QT以及IDE开发工具QT Creator。第二、安装交叉编译的QTE以及移植QTE到博创star2410开发板,下面我们开始正式安装。
2.1.安装LinuxPC机上的开发工具QT
首先我们到QT的官方网站下载Linux下的QT版本,下载地址为:http://qt.nokia.com/downloads-cn,这里我们直接下载最新版本的Qt SDK for Linux/X11 32-bit** (370 Mb) (软件开发工具包)里面包括QT4.6.3以及QT IDE开发工具QT Creator,由于我们是直接下载编译好的二进制包,所以我们只需要更改一下文件的属性,变为可执行就行了,具体命令为:chmod +x qt-sdk-linux-x86-opensource-2010.04.bin,这样我们就能在文件的目录里执行./qt-sdk-linux-x86-opensource-2010.04.bin,然后就开始安装了。然后点击next、I accept the agreement、next、(默认安装路径为/opt/qtsdk-2010.04,你可以根据自己喜好更改路径,这里我们选择默认)、next、(在选择组件对话框里我们依然默认)next、(外部管理对话框,默认)next、(准备安装)next后开始安装,我们只需要等待就行,最后点击finish安装完成,我们会在桌面发现多了一个图标,这说明我们的QT以及Qt Creator安装成功,最后一步就是设置环境变量,具体步骤如下:使用编辑器打开配置文件 命令为:gedit ~/.profile ,在文件的最后添加export QTDIR=$PATH:/opt/qtsdk-2010.04/qt
export PATH=$PATH:/opt/qtsdk-2010.04/qt/bin
环境变量设置完成,重启系统,但是现在我们的QT还不能使用,因为我们的LinuxPC机没有安装标准C开发环境,最后再执行一条命令:apt-get install build-essential libncurses5-dev,至此我们的PC机QT开发工具就安装完成了,可以正常使用了。
2.2.搭建QTE-arm环境并移植QTE以及tslib1.4到博创star2410开发板
首先我们要先安装交叉编译工具链,这里我们使用的交叉编译器为博创公司提供的版本为arm-linux-gcc3.4.6,将arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2放到/root/song目录下,然后打开目录解压编译器,具体命令为:tar xjvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 -C /usr/local/(注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。),这样我们就将编译器安装在了/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/下,然后设置环境变量,仍然是:gedit ~/.profile 在文件最后添加:export PATH=$PATH:/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin,保存文件,然后执行:source ~/.profile是变量立即生效,然后在命令行下输入:arm-linux-gcc -v检查是否安装成功,安装成功则出现:Reading specs from /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/3.4.6/specs
Configured with: /home/samba/armlinux/crosstool/crosstool-0.42/build/arm-linux/gcc-3.4.6-glibc-2.3.6/gcc-3.4.6/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux --with-headers=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/include --with-local-prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.6
否则可能是环境变量设置问题,仔细检查应该就能解决。
交叉编译器安装成功后,我们就开始解压及编译触摸屏软件tslib1.4.tar.gz,具体步骤如下:打开文件所在目录:cd /root/song ,解压:tar xjvf tslib-1.4.tar.bz2,进入解压目录:cd tslib-1.4,修改脚本:gedit build.sh,原来的内容为:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
#./configure --prefix=/mnt/nfs/tslib1.4-install --host=arm-linux
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/mnt/nfs/Trolltech/QtopiaCore-4.3.3/tslib1.4
make

make install
修改后:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/usr/local/tslib
make

make install
保存退出并执行:./build.sh开始编译并安装,中间没有出错,成功安装到了/usr/local/tslib目录下,tslib1.4编译成功。下面开始编译安装qte4.6.3-arm,首先到官方下载最新版的qte,版本为:qt-everywhere-opensource-src-4.6.3.tar.gz ,下载地址为:http://qt.nokia.com/downloads/embedded-linux-cpp,然后开始编译安装,
具体步骤如下:进入文件所在目录:cd /root/song,解压:tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz,进入解压目录:cd qt-everywhere-opensource-src-4.6.3,修改错误文件:gedit src/3rdparty/freetype/include/freetype/config/ftconfig.h,将第330行修改为:"orr    %0, %0,%2, lsl #16/n/t"  /* %0 |= %2 << 16 */,防止出现如下错误:text/qfontengine_ft.cpp: In member function `bool QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':
text/qfontengine_ft.cpp:696: warning: converting to `int' from `qreal'
{standard input}: Assembler messages:
{standard input}:781: Error: register or shift expression expected -- `orr r3,r2,lsl#16'
{standard input}:792: Error: register or shift expression expected -- `orr r2,r3,lsl#16'
{standard input}:7752: Error: register or shift expression expected -- `orr r3,r0,lsl#16'
{standard input}:7765: Error: register or shift expression expected -- `orr r1,r0,lsl#16'
make[1]: *** [.obj/release-shared-emb-arm/qfontengine_ft.o] 错误 1
make[1]:正在离开目录 `/root/song/qt-everywhere-opensource-src-4.6.3;然后开始配置configure:命令为:./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/Trolltech/qte4.6.3-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -I/usr/local/tslib/include -L/usr/local/tslib/lib -v -D__ARM_ARCH_5TEJ__,然后输入o回车,再输入yes回车开始配置,配置成功提示:Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/qte4.6.3-arm

To reconfigure, run 'make confclean' and 'configure'.
然后开始编译:make,需要等待一会,快慢视个人配置。大概半个小时左右make完毕,然后执行:make install,完成后qte就被安装在了/usr/local/qte4.6.3-arm下面,至此,qte4.6.3-arm编译安装成功。
然后我们开始把qte移植到博创star2410开发板上,具体步骤为:1.复制tslib库以及ts目录,cp /usr/local/tslib/lib/libts* /usr/local/qte4.6.3-arm/lib/,cp -rf /usr/local/tslib/lib/ts /usr/local/qte4.6.3-arm/lib/,进入目录:cd /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib,继续拷贝库:cp libgcc_s.so.1 /usr/local/qte4.6.3-arm/lib/,cp librt.so.1 /usr/local/qte4.6.3-arm/lib/,cp libstdc++.so.6 /usr/local/qte4.6.3-arm/lib/,cp libz.so.1 /usr/local/qte4.6.3-arm/lib/,拷贝库完成,对于有些库文件,可以裁剪一下,命令如下:arm-linux-strip libstdc++.so.6,最后将/usr/local/qte4.6.3-arm/lib/中的所有文件打包,命令如下:tar czvf lib-new.tar.bz2 *,然后再将tslib校准程序移植,cd /usr/local/tslib/lib,拷贝需要的库文件,cp /usr/local/qte4.6.3-arm/lib/librt.so.1 .,cp /usr/local/qte4.6.3-arm/lib/libz.so.1 .,最后将整个tslib目录打包,命令如下:tar czvf touch.tar.bz2 *,最后将我们所有打包的文件以及前面交叉编译的MPlayer全部放到一个目录下,这里我建立了一个embed目录,将所有包放进去,解压整理,最终生成一个应用程序包,其中包括MPlayer,触摸屏校准程序,usb设备挂载,以及qte4.6.3,包的名字为:embed.tar.bz2。至此我们的移植以接近尾声,下面我们把编译好的应用程序包下载到star2410上,步骤如下:先在Linux下面使用minicom连接上板子,设置板子的IP使和主机在同一网段,命令如下:ifconfig eth0 192.168.88.189 broadcast 192.168.88.254 ,然后再执行inetd,是更改生效。然后在windows下使用FlashFXP软件匿名连接板子的IP,连接上后,将embed.tar.bz2传送到板子,很快就可以传完,然后在板子上,进入root目录,执行命令:mv /root/system/var/ftp/pub/embed.tar.bz2 .,然后解压程序包:tar xzvf embed.tar.bz2,这样root目录下就出现了我们的程序目录,首先我们进入touch目录进行触摸屏校准,我们先写touch.sh一个脚本方便程序执行,脚本内容如下:#bin/sh
export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
/root/touch/bin/ts_calibrate
/root/touch/bin/ts_test
保存退出,执行脚本:./touch.sh,出现如下错误:No raw modules loaded.                                                         
ts_config: Success                                                             
No raw modules loaded.                                                         
ts_config: Success
解决方法:vi etc/ts.conf,将文件中第二行# module_raw input前面的#号去掉,然后在执行脚本,屏幕上出现校准程序,点击十字架开始校准,至此,tslib1.4移植成功!
最后我们进入qte4.6.3目录中,同样我们也写一个脚本方便程序运行,脚本qt.sh内容如下:export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export QTDIR=$PWD
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
export QT_QWS_FONTDIR=$PWD/lib/fonts
export LANG=zh_CN
export QWS_DISPLAY="LinuxFb:mmWidth160:mmHeight120:0"
/root/qte4.6.3/bin/demo -qws
保存退出,然后执行:./qt.sh
出现以下错误,并且触摸屏不能使用:No raw modules loaded.                                                         
QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or di'
Please check your tslib installation!
解决方法:还是将etc/ts.conf文件中的第二行前面的#号去掉,保存退出,在执行./qt.sh,成功,无任何提示,屏幕显示我们的例子,并且触摸屏使用正常,至此,我们的qte4.6.3、tslib1.4的编译安装以及移植到博创的star2410板子上的工作全部完成!

目录
相关文章
|
3月前
|
编译器
QT creator开发环境下 界面更改后运行程序不能实时更新或者在源文件添加该控件后无法编译的问题
在使用QT Creator开发界面的过程中,偶尔会出现添加控件后,运行程序后,界面控件无法更新的情况,或者在源文件使用该控件却出现无法编译的情况,使用QT Creator 4.8.2也会出现这个情况,也不知道这种情况会不会在以后有所改善。
60 0
|
传感器 XML 消息中间件
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
|
1月前
|
IDE 数据可视化 开发工具
【Qt】—— Qt开发环境的搭建
【Qt】—— Qt开发环境的搭建
|
Ubuntu NoSQL IDE
树莓派开发笔记(二):qt开发环境搭建:树莓派qt编译和宿主机qt交叉编译
树莓派开发笔记(二):qt开发环境搭建:树莓派qt编译和宿主机qt交叉编译
树莓派开发笔记(二):qt开发环境搭建:树莓派qt编译和宿主机qt交叉编译
|
2月前
|
开发工具 C++ git
QT基础【1-开发环境安装】
QT基础【1-开发环境安装】
|
7月前
|
Ubuntu 编译器 网络安全
RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
在之前的博文中已经搭建好了一个比较完善的ubuntu宿主机,都很完善了但是发现没有Qt交叉编译开发环境,所以还需要搭建一套Qt交叉编译开发环境。
|
8月前
|
XML 数据管理 编译器
Qt+GDAL开发笔记(二):在windows系统msvc207x64编译GDAL库、搭建开发环境和基础Demo
上一篇使用mingw32版本的gdal,过程曲折,为更好的更方便搭建环境,在windows上msvc方式对于库比较友好。
|
9月前
|
XML 数据管理 Linux
Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo
麒麟系统上做全球北斗定位终端开发,调试工具要做一个windows版本方便校对,北斗GPS发过来的是大地坐标,应用需要的是经纬度坐标,所以需要转换,可以使用公式转换,但是之前涉及到了另一个shang市公司项目使用WG,最终选择了GDAL库进行转换。
|
9月前
|
XML 编译器 数据库
QT --- VS嵌入QT开发环境搭建
QT --- VS嵌入QT开发环境搭建
138 0
|
计算机视觉
window10环境下配置qt使用opencv开发环境
window10环境下配置qt使用opencv开发环境
101 0