Qt4.5.1触摸屏(tslib 1.4)+sqlite3 移植全记录


主机系统:Debian 5.0

主机编译器:gcc/g++为4.1.3

交叉编译器:arm-linux-gcc/g++3.4.5-glibc-2.3.6

软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gz

                qt-x11-opensource-src-4.5.1.tar.gz

                tslib-1.4.tar.gz

目标板:博创UP-TECH S2410

1. 安装X11的相关库文件和开发包

在编译时会生成一些在主机上运行的工具,要用到X11的一些头文件、库,所以需要安装X11开发包。

#sudo apt-get -y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-dev libqt3-mt-dev

#sudo mkdir -p /usr/X11R6/include

#sudo cp -rf /usr/include/X11 /usr/X11R6/include(参考韦东山《嵌入式Linux应用开发完全手册》)

2.安装交叉编译器arm-linux-gcc-3.4.5

(1) 新建安装目录:#mkdir /usr/local/arm

(2) 解压arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2

把arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2复制在目录/usr/local/arm下,在终端中进行如下操作:

#cd /usr/local/arm

#tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2

等待解压完成。

(3) 导入环境变量

export PATH=$PATH:/usr/local/arm/3.4.5/bin

或者:编辑一个导入环境变量的脚本(方便以后使用):

#vi ArmEnv

  1 #!/bin/sh

  2 export PATH=$PATH:/usr/local/arm/3.4.5/bin

#chmod +x ArmEnv  //增加可执行权限

#arm-linux-gcc -v

这样就把交叉编译器的地址变量设置好了,但这样设置路径变量的方法只在此终端中生效,对其他的终端无效,若要设置对所有用户所有终端都有效的路径变量,在/etc/profile 中最后一行添加“export PATH=/usr/local/arm/3.4.5/bin:$PATH”(不推荐这种方式)。

3.编译安装qt-x11-opensource-src-4.5.1

qt-x11版本可以产生Qt开发工具,如designer、lingust等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。

将qt-x11-opensource-src-4.5.1.tar.gz复制到/root/local/qt目录下,进行解压,在终端中进行如下操作:

#cd /root/local/qt

#tar zxvf qt-x11-opensource-src-4.5.1.tar.gz

解压完成后,得到/root/local/qt/qt-x11-opensource-src-4.5.1目录。下面就开始进行编译了。

进入/root/local/qt/qt-x11-opensource-src-4.5.1目录,进行编译安装。在终端中进行如下操作:

#./configure –qvfb

#make

#cd tools/qvfb

#make

#cd ../..

#make install

经过相当长的时间完成后,会在/usr/local目录下生成一个Trolltech目录,形成/usr/local/Trolltech目录,这是qt-x11-opensource-src-4.5.1安装后所在的目录,进入/usr/local/Trolltech会看到一个Qt-4.5.1的目录,将/root/local/qt/qt-x11-opensource-src-4.5.1/tools/qvfb目录下的qvfb相关文件拷贝到/usr/local/Trolltech/Qt-4.5.1/bin目录下,在终端中操作(确定当前目录是/root/local/qt/qt-x11-opensource-src-4.5.1)。

#cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.1/bin

至此,qt-x11-opensource-src-4.5.1就编译安装成功了

你就可以使用/usr/local/Trolltech/Qt-4.5.1下的Qt进行编程开发了。

===============================================================================

4. 这里,qt-embedded有两个复制:qt-embedded-linux-opensource-src-4.5.1-x86和qt-embedded-linux-opensource-src-4.5.1-arm,根据他们的名字可以知道前者是适合x86架构的,后者适合arm架构为什么需要两个呢?如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。这里是否有些疑问,qt-x11也是适合x86结构的,这不是和qt-embedded重复了吗?答案是这样的,qt-embedded版本只能在嵌入式板子上面运行,编译成x86架构的程序也只能在x86的嵌入式板子上跑(这里咱们用的PC机其实是也可以看成嵌入式开发板只不过它是x86架构的)。前面说过,我们需要qvfb来开发,但是qvfb只能执行x86架构的应用程序,所以需要让qt-embedded生成关于x86的库和其他文件。而将qt-embedded编译成arm,又是为什么呢?道理很简单,我最终的qt应用程序需要在arm架构上面运行,当然需要这方面的库,所以编译成arm也就顺理成章了。好了,现在简单的总结一下,首先,使用qt-x11提供的库和开发工具开发出qt应用程序,然后使用qt-embedded关于x86库和工具再次编译我们开发qt应用程序,这是所得到的可执行文件就可以在qvfb上运行了,最后,使用qt-embeddedd的arm库再次编译就可以得到在arm上能运行的可执行程序。很明显,如果有开发板,第二步是可要可不要的(最好是要),如果没有开发板的话,第三步也就没必要了,这样就不需要将qt-embedded编译成适合arm架构的。

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容