最近把Qt到开发环境建立了起来,以后打算多点时间在学习Qt上面,下面是我的移植与搭建过程,现在贴出来希望能对大家有点帮助。。。。。
作者:顾文彪
博客:http://blog.chinaunix.net/u3/113714/
交叉编译器:arm-linux-gcc-4.3.2
开发环境:ubuntu10.10
声明:最近在网上发现有某些人转载我的文章不但没有标明来源,还说是自己到原创文章,让我感到十分气愤,我贴出自己的笔记完全是为了对嵌入式爱好者们做点贡献,请大家珍惜我的劳动成果!转载的话请自觉注明来源:http://blog.chinaunix.net/u3/113714/
接下来开始:
首先下载qt-everywhere-opensource-src-4.6.3.tar.gz 、qt-sdk-linux-x86-opensource-2010.04.bin 、tslib-1.4.tar.gz 这三个源码包,链接我就不给了,大家自己去google一下,这里我把这几个包的用途说一下:
qt-everywhere-opensource-src-4.6.3.tar.gz为Qt的源码包,用来编译各种Qt的库等,这里需要编译三次,分别为x11版本,embedded版本和arm版本;编译x11版只是为了得到qvfb工具,至于qvfb的用途后面自会说明;embedded版本为Qt 的嵌入式版本,将来和qvfb配合使用;arm版本很好理解,即要放到开发板上的东西。
qt-sdk-linux-x86-opensource-2010.04.bin是开发qt的IDE,这里我用的是linux版本,用它来开发自己的Qt应用。
tslib-1.4.tar.gz为触摸屏校正程序,编译qt的arm版本的时候需要tslib的库,tslib编译后会生成触摸屏校正程序(ts_calibrate),用来给开发板的触摸屏进行校正。
下面是具体的移植过程:
约定:
交叉编译器路径:/usr/local/arm/4.3.2/bin/
源码包路径:/home/gu/Qt/src/
输出目录:/home/gu/Qt/output/
将qt-everywhere-opensource-src-4.6.3.tar.gz解压三次,分别命名为qt-x11、qt-embedded和qt-arm
一、x11版本的编译
首先配置,命令为:
./configure -prefix ~/gu/Qt/output/qt-x11
然后输入“o”,在然后输入“yes”,下面的embedded版本和arm版本配置时也是一样。
执行后会出现错误:
出错:Basic XLib functionality test failed!
解决方法:sudo apt-get install libx11-dev libxext-dev libxtst-dev
然后: make && make install
编译会持续一个多小时,取决与你电脑的配置高低,这里有个窍门,假如你PC机的CPU是双核的话,将make指令加上 -j3参数,会进行多线程编译,编译速度会大大提高,即make -j3,这时会使用两个核心同时编译,大家可以试试;编译完成后qt的x11版本会被安装在/home/gu/Qt/output/qt-x11目录;这时还没与完,关键的qvfb程序还没有被编译,所以继续:
cd tools/qvfb
make
然后将在/home/gu/Qt/src/qt-x11/bin目录生成的qvfb程序,将它复制到电脑的/usr/sbin目录,以后可以直接在终端执行了。
二、embedded版本的编译
配置:
./configure -no-largefile -no-accessibility -no-qt3support -no-phonon -no-svg -no-nis -no-cups -no-opengl -qvfb -prefix ~/Qt/output/qt-embedded
配置完成后:
make -j3
make install
一般不会出现任何错误的。
三、tslib的编译
首先:
export PATH=/usr/local/arm/4.3.2/bin/:$PATH
export PREFIX=/home/gu/Qt/
export CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc
./autogen.sh
出现错误:./autogen.sh: 4: autoreconf: not found
解决方法:
sudo apt-get install autoconf automake libtool
然后重新:./autogen.sh
然后:
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache
配置完成后:make && make install
四、arm版本的编译
首先配置:
./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 4,8,12,16 -no-qt3support -no-qvfb -qt-mouse-tslib -prefix /home/gu/Qt/output/qt-arm/ -qt-sql-sqlite -I/home/gu/Qt/output/tslib/include -L/home/gu/Qt/output/tslib/lib -no-rpath -no-largefile -no-accessibility
然后:make
出现错误:../../corelib/tools/qbytearray.cpp:54: fatal error: zlib.h:没有那个文件或目录
解决办法:sudo apt-get install zlib1g-dev
然后重新:make -j3
编译完成之后make install
------------------------------------至此Qt移植完成-----------------------------------
接下来要安装配置Qt开发环境。。。。。。。。。。。。
Qt SDK的安装:
直接:./qt-sdk-linux-x86-opensource-2010.04.bin
会出现图形界面安装,跟windows上安装程序一样,相信大家都会。。。
安装完成后桌面会有一个Qt creator的图标,运行它来进行配置:
在Qt-creator菜单栏Tools―〉Options…打开Options窗口。
在Options界面左侧,点击Qt4―〉Qt Versions右侧显示Qt Versions设置界面。
在Qt Versions界面中点击那个蓝色的大“╋”号图标
在下方Version Name:文本框内输入Qt的版本名,可以随便填,能区分各个版本即可,如X11版取名为qt-x11、embedded版本取名qt-embedded、arm版本取名为qt-arm
单击Qmake Location:右侧Browse…按钮,在弹出的“Select QMake Executable”窗口中找到对应版本的qmake程序(x11版路径:/home/gu/Qt/output/qt-x11/bin/qmake,embedded版路径:/home/gu/Qt/output/qt-embedded/bin/qmake,arm版路径:/home/gu/Qt/output/qt-arm/bin/qmake),单击打开,回到Qt Versions界面。
回到Qt Versions界面,单击Debugging Helper:右侧Rebuild按钮,等待片刻,看到Debugging Helper:后出现一个绿色的“√”即可。
arm版本的Rebuild时会出现错误,解决方法为:
sudo gedit /home/gu/Qt/output/qt-arm/mkspecs/qws/linux-arm-g++/qmake.conf
修改为:
QMAKE_CC = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK =/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
重新rebuild ,
添加完毕,单击OK按钮关闭Options窗口。
----------------------------至此qt creator配置完成--------------------------------------
至于qt creator的使用方法就要靠大家自己学习了,好了,以后就可以开发Qt应用程序了!!!