Qt开发环境的搭建
首先讲讲为什么要用Qt这个东东吧!用了以后才知道,这门语言真的很不错,我权当把它当成了类库来用,Linux本身的C语言编程是很烦的,比如说串口编程,虽说C编程也不难,但是使用Qt这种封装的类库来操作的话,会少很多的bug,更值得一提的是GUI编程,Qt提供了丰富的GUI控件,对于制作嵌入式GUI来说比较适合!所以我也就跟大家一样,使用Qt来开发嵌入式软件吧!
在之前我的博客里面已经有了一片文章关于交叉工具链的,在搭建好了交叉工具链以后,咱们只需要两个download的包就可以开工了,今天的主题是Qt环境的搭建包括环境变量的设置,Okay,Lets go!
这两个包分别是qt-everywhere-opensource-src-4.8.0.tar.gz位于http://download.qt-project.org/archive/qt/4.8/4.8.0/网页下,还有一个tslib-1.4.bar.gz位于http://ishare.iask.sina.com.cn/f/21567219.html网页下,第一步当然是有耐心的下下来!
step1->搞定tslib:
在继续写下去之前还是介绍一下我的环境吧:
OS:Ubuntu 12.04LTS
Board: Mini2440(s3c2440 arm9)
Gcc Version:4.6.3
基本上参数就是这样。
tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因此这里先编译安装tslib,这样在后面编译Qt的时候才能打包编译进去。首先需要检查一下软件是否安装,
sudo apt-get install automake
sudo apt-get install autogen
sudo apt-get install autoconf
这三个一定要检查,不然有可能编译出错!
# tar -zxvf tslib-1.4.tar.gz ---因为下面prefix 指定安装在/usr/local下,这个文件 不能放在/usr/local下面!可放在其它目录如/home.
# cd tslib
# ./autogen.sh
#./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslib
# make
# make install
-prefix=/usr/local/tslib是指定安装路径,其实包括下文的安装配置,路径都可以不指定,默认就是安装到/usr/local/目录下.
将交叉编译的tslib安装到开发板上其实就是拷贝相关的文件并添加系统环境变量而已,所以相对操作较为简单,主要的就是需要找对目录就行。 按照上面的操作方法,
交叉编译安装后的文件在/usr/local/tslib目录下,因此需要拷贝的文件如下:
1. /usr/local/tslib/lib文件下除去pkgconfig目录外其他所有文件拷贝到开 发板/lib目录下
2. /usr/local/tslib/etc下的ts.conf拷贝到开发板的/etc下,在复制对应 目录之前修改文件如下,也可以复制完成后修改。
3. /usr/local/tslib/bin下的所有文件拷贝到开发板/tslib下;
下面是ts.conf文件的第一行与第二行
# Uncomment if you wish to use the linux input layer event interface
# module_raw input 去掉
# module_raw input前面的注释,一定要注意中间的空格也去掉,module顶格。 注意:
运行./ ts_calibrate时可能会出现selected device is not a touchscreen I understand错误,这时只需要将ts.conf文件中的#module_raw h3600 的注释符号去掉(左边不能留空格).
最后添加环境变量,通过超级终端在开发板系统中添加环境变量,可以在开发板文件系统的/etc/profile(nfs 挂载时是/opt/mini2440/root_nfs/etc/profile)文件里添加。
export TSLIB_TSDEVICE=/dev/input/ts0 export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
说明: TSLIB_TSDEVICE->触摸屏设备文件名。 TSLIB_CALIBFILE->校准的数据文件,由ts_calibrate校准程序生成。 SLIB_CONFFILE->配置文件名。 TSLIB_PLUGINDIR->插件目录 TSLIB_CONSOLEDEVICE->控制台设备文件名 TSLIB_FBDEVICE->设备名 以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。 最后运行测验程序 ts_calibrate 进行校验 ts_test 进行测试。
step2->编译qt for embedded
这个配置很长很烦,改天补上!
step3->配置环境变量
首先先跟大家介绍一下我现在机器上的软件,ubuntu 12.04自带qt4库,在安装好了qt-creator后会有另外一个qmake,这样以来,有冲突啊,首先给大家看看我们的qt-creator在哪里。
可见/user/bin下面存在一个,这个是供qt-creator调用的,这里的编译出来的东西是在i386上面跑的,可以使用qmake -v查看当前使用的qmake是哪个,使用的库是哪个?
那我们要编译源文件到板子上去跑,用这个肯定是不行的,但是我们的Trolltech包里面有qmake,在哪儿呢?去看看吧!就在这里: