qt-opensource-everywhere编译(转)
安装QT嵌入式开发环境花了4天时间,记录其中过程点滴 。
p { margin-bottom: 0.21cm; }
1 、系统环境以及软件准备
主机操作系统: Ubuntu 9.04
主机编译器: gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
交叉编译器: arm-linux-gcc 3.4.1
软件安装包:(软件包事先下载到了主目录下的 Qt 目录)
qt-everywhere-opensource-src-4.7.0.tar.gz ( 适合 x11 ,embedded)
2. 下载 qt-everywhere-opensource-src- 4.6.2.tar.gz
下载地址: http://ftp3.ie.freebsd.org/pub/trolltech/pub/qt/source/ 下载
3. 安装 qt-x11 ( 主要是为了得到 assistant ,designer ,qvfb,uic 等工具 )
A 、编译安装 qt-x11 到 /usr/local/qt-x86 目录
解压: tar xzvf qt-everywhere-opensource-src-4.7.0.tar.gz
进入解压目录: cd qt-everywhere-opensource-src-4.7.0
配置: ./configure -prefix /usr/local/qt-x86 -qvfb
编译: make
安装: make install
NOTE: 配置时要加上 -qvfb ,否则后面无法编译生成 qvfb ( Qt/Embedded Virtual Framebuffer ) 工具
B 、编译安装 qvfb
进入 qvfb 源文件目录: cd qt-everywhere-opensource-src-4.7.0/tools/qvfb/
编译: make
安装: sudo make install
然后将
完成后会在 /usr/local/qt-x86/bin 里找到 qvfb
p { margin-bottom: 0.21cm; }
4. 编译安装 qt-embedded
这里要编译 qte 的两个版本, qte for x86 ( 主要是生成在 x86 体系结构(即开发主机上)通过 qvfb 运行的工具和库文件 ) ,
qte for arm( 主要是生成在 arm 体系结构(即开发板上)直接运行的工具和库文件 )
qte for x86 :
A 、解压 qt-everywhere-opensource-src-4.6.2.tar.gz
解压: tar xzvf qt-everywhere-opensource-src-4.6.2.tar.gz
B, 进入刚才解压得到的目录
cd qt-everywhere-opensource-src-4.6.2
C, 编译并安装 qte-for x86( 在 /usr/local/qte-x86 下生成 一些工具和相应的库文件 )
p { margin-bottom: 0.21cm; }
配置: ./configure -prefix /usr/local/qte-x86 -qvfb -qt3support -debug-and-release -system-zlib -system-libtiff -system-libpng -system-libjpeg -qt-libmng -make libs -nomake examples -nomake demos -nis -no-cups -xplatform qws/linux-x86-g++ -embedded x86 -depths 16,24,32 -qt-gfx-qvfb -no-gfx-linuxfb -no-gfx-transformed -no-gfx-vnc -no-gfx-multiscreen -plugin-sql-sqlite -no-glib -dbus -qt-kbd-qvfb -qt-mouse-qvfb
不成功则换其他的!!!
sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0 -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb ( 最后一个参数可能要删除 )
( 原先编译了 examples, demos 的,但一直出现错误,才有了后面列的几个错误,最后遇到一个错误解决不了了,就去掉了那两个模块,但现在 qvfb 还是有问题 , 有两个鼠标,一个一直飘, )
相关参数可以 用 ./configure -help 查看,感觉 Qt3 和 Qt4 的配置参数还是有点区别的,第一次我加了 -qt-mouse-usb 报告说 不识别这个参数。
编译: make
安装: make install
( 安装完成后就会在 /usr/local/qte-x86 下生成 一些工具和相应的库文件,当然可以改 -prefix yourDIR 不加 这个参数会默认安装在 /usr/local/Trolltech/***)
p { margin-bottom: 0.21cm; }
qte for arm :
可以把刚才解压的目录改名或者删除(如果没有足够空间的话)
A 、解压 qt-everywhere-opensource-src-4.6.2.tar.gz
解压: tar xzvf qt-everywhere-opensource-src-4.6.2.tar.gz
B, 进入刚才解压得到的目录
cd qt-everywhere-opensource-src-4.6.2
C, 编译并安装 qte-for arm( 在 /usr/local/qte-arm 下生成 一些工具和相应的库文件 )
配置: ./configure -prefix /usr/local/qte-arm -debug-and-release -qt3support -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake examples -nomake demos -nomake docs -no-cups -iconv -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 8,16,24,32 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen -no-dbus -qt-sql-sqlite -qt-kbd-qvfb -qt-kbd-tty -qt-mouse-pc -no-glib -qt-mouse-tslib -I/arm2410s/buildTSlib/include -L/arm2410s/buildTSlib/lib -D__ARM_ARCH_6__
( 最后的参数 -D__ARM_ARCH_5TEJ__ 是出现了后面的第七个错误 #error "Not supported ARM architecture" 后又重新回来加上的,加上后指明了适合的平台就没这个错误了 )
参数 -qt-mouse-tslib -I/arm2410s/buildTSlib/include -L/arm2410s/buildTSlib/lib 是说我用的是 tslib ,后面的- I ,- L 分别指明了要包含的头文件和库文件, /arm2410s/buildTSlib/ 是我编译 tslib-1.0 是生成文件的目录,详细编译 tslib 可以参见一武大女生的博客: http: //blog.chinaunix.net/u1/33412/showart_273400.html
编译: make
安装: make install
5. 设置环境变量
A :针对 qte for x86 的
cd /usr/local/
sudo gedit setenv-x86
编辑完后的内容如下:
export QT4DIR=/usr/local/qt-x86
export QTEDIR=/usr/local/qte-x86
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
保存退出
p { margin-bottom: 0.21cm; }
B :针对 qte for arm 的
sudo gedit setenv-arm
编辑完后的内容如下:
export QT4DIR=/usr/local/qt-x86
export QTEDIR=/usr/local/qte-arm
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
保存并退出
要运行哪个版本就设置相应的环境,如要在主机上用qvfb ,就用 运行:. setenv-x86 ( 注意点后面有个空格 )
6 . 配置两个快速启动脚本
[root@redflag5 bin]# cat qvfb.sh
/usr/local/Trolltech/QtEmbedded-4.4.1/bin/qvfb -width 640 -height 480 -depth 16 &
7 。使用
开机后运行. qvfb.sh
就可以进入工作环境进行编程和调试的工作了。
注意,第一次运行eclipse 时会提示你进行Qt 的设置,将路径设置到Qte/bin 路径下即可。
千万不要关闭qvfb 窗口,不然屏幕上部会花屏,键盘输入也会被截断。
每一个程序,在Eclipse 中设置其启动参数 -qws 。
我在usr/local/bin 下创建了qvfb.sh ,把5 和6 步写在了一起。export 了一些环境变量(qte-for-arm) ,配置 qvfb 和 eclipse ,然后使用前在任何路径下输入. qvfb.sh 即可。然后. /qvfb.sh , qmake -project , qmake xxx.pro , make , ./xxx -qws;
对qte-for x86的环境变量,编译程序时使用x11还是qte-x86是有规律的。打开终端后,若不运行. qvfb.sh, 编译使用的是x11,只要开了一次qvfb,则以后编译的全是qte-x86,除非重新打开终端