Qt4.7.4移植

Qt4.7.4移植

 

移植环境

gcc编译器版本:gcc version4.3.2 (Sourcery G++ Lite 2008q3-72)

宿主机版本:Ubuntu 10.04LTS

QtCreator版本:QtCreator2.6.1

交叉编译依赖库:tslib1.4

Qt版本:qt-everywhere-opensource-src-4.7.4

虚拟机版本:Vmware 7.1.4

 

qmake

移植Qt其实主要是为了得到三个版本的qmake,分别为qmake-arm、qmake-x86、qmake-x11

qmake-arm:用于交叉编译arm架构的程序,编译后的程序运行在开发板上。由于我们的开发板要使用触摸屏,开发板程序需要触摸屏库的支持,所以必须先移植触摸屏库。

qmake-x86:用于编译x86架构的程序,编译这个qmake只是为了方便调试开发板上的程序,创建一个虚拟的开发板环境。

qmake-x11:用于编译在宿主机上运行的程序。移植时需要把qvfb这个工具编译出来提供给虚拟环境使用,配置时加上参数-qvfb即可。

 

移植前准备

1.      分别创建以下目录:

/home/qt/qt-x86

/home/qt/qt-x11

/home/qt/qt-arm

/home/qt/qt-creator

/home/qt/tslib

2.      文件。将qt-everywhere-opensource-src-4.7.4解压成三份,分别命名为qt-x86-build、qt-x11-build、qt-arm-build。

 

tslib 1.4触摸屏库的移植

1.解压源码

# tar -zxvf tslib-1.4.tar.gz

# cd tslib-1.4

 

2.执行autogen.sh脚本生成configure文件

# ./autogen.sh

 

3.生成Makefile文件

# echo"ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

# ./configure --host=arm-linux --prefix=/home/qt/tslib--cache-file=arm-linux.cache

说明:

l  --cache-file 定义一个临时的缓冲文件,当重新进行配置时可利用此文件加快配置速度,默认情况下是不用这个文件的。

l  如果不添加echo"ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache会报错:

ts_test.o: In function `main':

ts_test.c:(.text+0x1d8): undefinedreference to `rpl_malloc'

fbutils.o: In function`open_framebuffer':

fbutils.c:(.text+0xa20): undefinedreference to `rpl_malloc'

 

4.编译安装

#make

#make install

 

5.修改/tslib/etc/ts.conf文件

module_rawinput

modulepthres pmin=1

modulevariance delta=30

moduledejitter delta=100

modulelinear

修改完成后将整个安装文件拷贝到开发板下的/usr目录下

 

6.修改开发板系统/etc/profile中添加如下代码:

exportTSLIB_ROOT=/usr/tslib_install

exportTSLIB_TSDEVICE=/dev/event0

exportTSLIB_CALIBFILE=/etc/pointercal

exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

exportTSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

exportTSLIB_CONSOLEDEVICE=none

exportTSLIB_FBDEVICE=/dev/fb0

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

 

7.在开发板上测试触摸屏校正程序

./home/tslib/bin/ts_calibrate

 

 

移植到ARM开发板qmake-arm

1.进入到/home/qt/qt-arm文件夹,配置编译选项

#./configure --prefix=/home/qt/qt-arm-embedded arm -release -opensource -fast -no-accessibility -no-scripttools-no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -silent-qt-libpng -qt-libjpeg -no-libtiff -no-multimedia -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 -depths16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc-no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I/home/qt/tslib/include-L/home/qt/tslib/lib

 

提示:

Do youaccept the terms of either license?

输入yes

 

2.make

 

3.makeinstall

 

4.编译完成之后修改/home/qt/qt-arm/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf文件

#modifications to g++.conf

QMAKE_CC                = arm-none-linux-gnueabi-gcc-lts

QMAKE_CXX               = arm-none-linux-gnueabi-g++-lts

QMAKE_LINK              = arm-none-linux-gnueabi-g++ -lts

QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++ -lts

使编译器加载触摸屏的库,否则编译时会报错!

 

5.将/home/qt/qt-arm/bin目录下的qmake名称更换为qmake-arm

 

6.添加环境变量

vi/etc/bash.bashrc

添加:

exportPATH=$PATH:/home/qt/qt-arm/bin

 

7.启用新的环境变量

#source/etc/bash.bashrc

 

8.查看是否设置成功

#qmake-arm–v

如果成功打印如下信息:

QMakeversion 2.01a

Using Qtversion 4.7.4 in /home/qt/qt-arm/lib

 

 

安装到宿主机qmake-x11

1.在编译qmake-x11之前先安装x11的一些库

#apt-get install libX11-dev libXext-dev libXtst-dev libpng12-dev

 

2.进入到qt-x11-build文件夹,配置编译选项

./configure --prefix=/home/qt/qt-x11-release -opensource -fast -silent -qt-libpng -qt-libjpeg -make libs -nomakeexamples -nomake demo -no-webkit -little-endian -qt-freetype -depths all-qt-gfx-linuxfb -qvfb -qt-kbd-linuxinput

 

提示:

Do youaccept the terms of either license?

输入yes

 

3.      make

 

4.      make install

 

5. 将/home/qt/qt-x11/bin目录下的qmake名称更换为qmake-x11

 

6.添加环境变量

vi/etc/bash.bashrc

添加:

exportPATH=$PATH:/home/qt/qt-x11/bin

 

7.启用新的环境变量

#source/etc/bash.bashrc

 

8.查看是否设置成功

#qmake-x11–v

如果成功打印如下信息:

QMakeversion 2.01a

Using Qtversion 4.7.4 in /home/qt/qt-x11/lib

 

9.编译qvfb

9.1进入到/qt-x11-build/tools目录,将该目录下的shared/deviceskin目录下的deviceskin.h和deviceskin.cpp两个文件拷贝到/qt-x11-build/tools/qvfb目录下。

 

9.2在qvfb文件夹下手动生成qvfb工程。

#qmake-x11–project

 

9.3生成Makefile文件

#qmake-x11

 

9.4修改Makefile文件中的LIBS 选项,添加 -lXtst选项

 

9.5 执行make命令,将生成的qvfb文件拷贝到/home/qt/qt-x11/bin目录下。

 

安装到宿主机qmake-x86

1.   进入到qt-x86-build文件夹,配置编译选项

./configure--prefix=/home/qt/qt-x86 -embedded x86 -release -opensource -fast-no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-webkit-no-3dnow -no-sse -no-sse2 -no-ssse3 -silent -qt-libpng -qt-libjpeg -no-libtiff-no-multimedia -make libs -nomake examples -nomake docs -nomake tools -nomakedemo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatformqws/linux-x86-g++ -little-endian -qt-freetype -depths all -qt-gfx-linuxfb-no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -qvfb -qt-kbd-linuxinput-no-glib

提示:

Do youaccept the terms of either license?

输入yes

 

2.make

 

3.makeinstall

 

4.将/home/qt/qt-x86/bin目录下的qmake名称更换为qmake-x86

 

6.添加环境变量

vi/etc/bash.bashrc

添加:

exportPATH=$PATH:/home/qt/qt-x86/bin

 

7.启用新的环境变量

#source/etc/bash.bashrc

 

8.查看是否设置成功

#qmake-x86–v

如果成功打印如下信息:

QMakeversion 2.01a

Using Qtversion 4.7.4 in /home/qt/qt-x86/lib

 

 

Hello World

1.创建一个main.cpp文件:

#include<QApplication>

#include<QPushButton>

 

intmain(int argc, char *argv[])

{

         QApplication app(argc, argv);

         QPushButton button("HelloWorld!");

         button.show();

        

         return app.exec();

}

 

2.编译

 

2.1使用qmake-arm编译

2.1.1进入main.cpp所在目录

#qmake-arm-project

生成test.pro文件

2.1.2再执行qmake-arm命令生成Makefile文件

#qmake-arm

2.1.3使用make命令文件生成可执行文件test

#make

2.1.4把生成后的test文件拷贝到开发板上运行即可

#./test –qws

 

2.2使用qmake-x86编译

2.2.1进入main.cpp所在目录,删除之前生成的所有文件,执行:

#qmake-x86-project

2.2.2再执行qmake-x86命令生成Makefile文件

#qmake-x86

2.2.3使用make命令文件生成可执行文件test

#make

2.2.4打开qvfb

#qvfb

2.2.5运行测试程序

#./test –qws–qvfb

 

2.3使用qmake-x11编译

2.3.1进入main.cpp所在目录,删除之前生成的所有文件,执行:

#qmake-x11–project

2.3.2再执行qmake-x11命令生成Makefile文件

#qmake-x11

2.3.3使用make命令文件生成可执行文件test

#make

2.3.4运行测试程序

#./test

 

 

QtCreator安装与配置

1.打开终端运行安装程序

#./qt-creator-linux-x86-opensource-2.6.1.bin

 

2.添加交叉编译工具。打开QtCreator依次点击Tools->Options->Build& Run在Compilers栏目里点击Add->GCC,设置Name为arm-linux-gcc,在Compiler Path栏里填写arm-linux-gcc交叉编译工具的绝对路径,设置完成后点击Apply应用。

 

3.添加qmake-arm。在Qt Version栏里点击Add,添加qmake路径/home/qt/qt-arm,找到后点击Apply应用。

 

4.添加kits。选择kits栏,点击Add,Name里填qt-arm,Device Type选择GenericLinux Device,Compiler选择arm-linux-gcc,Qt vision选择Qt 4.7.4 (qt-arm)。

 

5.添加qmake-x86。在Qt Version栏里点击Add,添加qmake路径/home/qt/qt-x86,找到后点击Apply应用。

 

6.添加kits。选择kits栏,点击Add,Name里填qt-x86,Device Type选择GenericLinux Device,Compiler选择GCC(x86 32bit),Qt vision选择Qt 4.7.4 (qt-x86)。

 

7.添加qmake-x11。在Qt Version栏里点击Add,添加qmake路径/home/qt/qt-x11,找到后点击Apply应用。

 

8. 添加kits。选择kits栏,点击Add,Name里填qt-x86,Device Type选择Desktop,Compiler选择GCC(x8632bit),Qt vision选择Qt 4.7.4 (qt-x11)。

 

 

 

QtCreator的使用

1.      打开QtCreator后点击File,选择New File or Project,Projects栏里选择Other Project,然后在右边选择Empty Qt Project,然后点击Choose,填好名称与路径后点击Next,然后选择一个kits,这里选择qt-x11这个工具,然后点击Next,最后点击Finish,这个工程就创建完成了。

2.      把鼠标放在左边Project栏的hello处,点击鼠标右键,选择Add New,依次选择C++, C++ Source File,然后选择Choose进入下一个对话框,这里在Name里填写main即可,然后选择Next,接着点击Finish完成。

3.      添加以上main.cpp代码,保存,然后点击左下角的锤子图标生成可执行文件,接着运行图标会变成绿色,点击它可运行程序。

你可能感兴趣的:(Qt4.7.4移植)