Qt开发环境的建立

简介:

开发模式

               在宿主机Federa上通过qvfb来模拟帧缓冲

               开发完毕后使用qt-embedded重新编译后下载程序到ARM上运行(ARM上需要安装Qt)

开发所需软件

  • qtopia-free-1.7.0.tar.gz
  • qt-x11-2.3.2.tar.gz
  • tmake-1.11.tar.gz
  • qt-embedded-2.3.7.tar.gz

配置时设置qvfb: ./configure -qconfig -qvfb -depths 4,8,16,32

 

程序的运行方式: ./qvfb &

                           ./canvas –qws   (一般调试时采用这种方式)

                          注意:QT默认显示窗口大小为240x320像素,指定其他窗口大小:qvfb -width 640 -height 480 &

如果需要将自己开发的安装在Qtopia中,则需要以下的步骤:

1. 在/x86-qtopia目录下建立文件夹hello,并编写相应的程序,执行:

make

编译完后程序生成在$QPEDIR/bin下

2. 设置配置文件hello.desktop并复制配置文件到$PEDIR/apps/Applications下:

配置文件内容:

[Desktop Entry]

Comment=An Hello Demo.

Exec=hello

Icon=Hello

Type=Application

Name=Hello

执行命令:

cp hello.desktop $PEDIR/apps/Applications

3. 执行程序:

qvfb &

qpe

4. 修改图标:

设计32*32的PNG图片放到<Qtopia>/pics/inline目录下,然后用qembed转换

qembed -images $QPEIDR/pics/inline/*.* > $QPEIDR/src/librabies/qtopia/inlinepics_p.h

宿主机Qt的安装

***********************************************************************************************

注:以下安装步骤在Redhat 9系统下测试通过,安装步骤参考了MagicARM2410平台实验手册。

在/zylinux下建立目录 x86-qtopia 所有的软件包都复制到该目录下

***********************************************************************************************

1.安装tmake

tar xzvf tmake-1.11.tar.gz

export TMAKEDIR=/zylinux/x86-qtopia/tmake-1.11

export TMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++

export PATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/

Tmake配置文件:Tmake.conf

Tmake的模板:app.t 用于生成应用程序的Makefile

    lib.t 用于生成库文件的Makefile

    subdirs.t 用于创建编译子目录中程序的Makefile

2.安装Qt/X11

tar xzvf qt-x11-2.3.2.tar.gz

cd qt-2.3.2/

export QTDIR=$PWD

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

./configure -static -no-xft -no-opengl

make

make -C tools/qvfb

mv tools/qvfb/qvfb bin

export QTEDIR=$QTDIR

cp bin/uic $QTEDIR/bin

cd ..

Qt的配置比较复杂 详细查看./configure --help

make -C tools/designer  图形设计器designer

3.解压Qtopia

tar xzvf qtopia-free-1.7.0.tar.gz

export QPEDIR=$PWD/qtopia

4.安装Qt/Embeded

这里使用了QPE的配置文件

tar xzvf qt-embedded-2.3.7.tar.gz

cd qt-2.3.7

export QTDIR=$PWD

export QTEDIR=$QTDIR

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

cp $QPEDIR/src/qt/qconfig-qpe.h src/tools

(echo yes; echo yes)|./configure -platform linux-x86-g++ -qconfig qpe -qvfb -depths 4,8,16,32

make sub-src  //make -C src

cd ..

5.安装Qtopia

cd qtopia-1.7.0

export QTDIR=$QTEDIR

export QPEDIR=$PWD

export PATH=$QTEDIR/bin:$PATH

cd src

./configure -platform linux-x86-g++

make

cd ../..

***********************************************************************************************

***********************************************************************************************

配置脚本(以上5步的完整安装,所有需要文件放在/zylinux/x86-qtopia下,执行./build):

#!/bin/bash

echo remove old dirs

rm -rf tmake

rm -rf qt

rm -rf qt-x11

rm -rf qtopia

echo Unpack all packages

tar xzvf tmake-1.11.tar.gz

tar xzvf qt-embedded-2.3.7.tar.gz

tar xzvf qt-x11-2.3.2.tar.gz

tar xzvf qtopia-free-1.7.0.tar.gz

echo rename

mv tmake-1.11 tmake

mv qtopia-free-1.7.0 qtopia

mv qt-2.3.7 qt

echo Start Install Qt-X11

cd qt-2.3.2

export QTDIR=$PWD

echo yes|./configure -static -no-xft -no-opengl -no-sm

make -C src/moc

cp src/moc/moc bin

make -C src

make -C tools/designer

make -C tools/qvfb

cp tools/qvfb/qvfb bin

strip bin/uic bin/moc bin/designer bin/qvfb

#cp bin/uic $QTEDIR/bin

cp bin/?* ../qt/bin

cd ..

#cp $QTDIR/bin/?* qt/bin

mv qt-2.3.2 qt-x11

echo Start Setting env-var

export QTDIR=$PWD/qt

export QTEDIR=$QTDIR

export QPEDIR=$PWD/qtopia

export TMAKEDIR=$PWD/tmake

export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++

export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

echo Start build Qt/Embedded

cd qt

make clean

cp $QPEDIR/src/qt/qconfig-qpe.h src/tools

(echo yes; echo yes)|./configure -platform linux-generic-g++ -qconfig qpe -qvfb -depths 16,24,32

make -C src

cd ..

echo Start Build Qtopia

cd qtopia/src

./configure -platform linux-generic-g++

make 

echo OK

这样安装完后的安置路径为:

qt-embedded-2.3.7.tar.gz /zylinux/x86-qtopia/qt

qtopia-free-1.7.0.tar.gz /zylinux/x86-qtopia/qtopia

qt-x11-2.3.2.tar.gz /zylinux/x86-qtopia/qt-x11

tmake-1.11.tar.gz /zylinux/x86-qtopia/tmake

***********************************************************************************************

***********************************************************************************************

安装完毕,开发前需要导出环境变量:

export QTDIR=$PWD/qt

export QPEDIR=$PWD/qtopia

export TMAKEDIR=$PWD/tmake

export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++

export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH

***********************************************************************************************

***********************************************************************************************

注:如果运行时找不到某些库,则需要设置库路径:

在/etc/ld.so.conf文件中增加Qt库的路径

/zylinux/x86-qtopia/lib

/zylinux/x86-qtopia/qtopia/lib

添加完路径后,在/etc目录下以root身份执行ldconfig使Qt的库生效。

 

注:undefined reference to vtable for "xxx::xxx"解决方法

某一个类中如果加入Q_OBJECT后, 则link时提示:undefined reference to vtable for "xxx::xxx".删掉它则没有任何问题.

解决:因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake,问题解决.在查找解决方法的时候,附带发现一点:qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.


本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2009/11/07/1598232.html,如需转载请自行联系原作者


相关文章
|
3月前
|
编译器
QT creator开发环境下 界面更改后运行程序不能实时更新或者在源文件添加该控件后无法编译的问题
在使用QT Creator开发界面的过程中,偶尔会出现添加控件后,运行程序后,界面控件无法更新的情况,或者在源文件使用该控件却出现无法编译的情况,使用QT Creator 4.8.2也会出现这个情况,也不知道这种情况会不会在以后有所改善。
66 0
|
传感器 XML 消息中间件
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
|
1月前
|
IDE 数据可视化 开发工具
【Qt】—— Qt开发环境的搭建
【Qt】—— Qt开发环境的搭建
|
Ubuntu NoSQL IDE
树莓派开发笔记(二):qt开发环境搭建:树莓派qt编译和宿主机qt交叉编译
树莓派开发笔记(二):qt开发环境搭建:树莓派qt编译和宿主机qt交叉编译
树莓派开发笔记(二):qt开发环境搭建:树莓派qt编译和宿主机qt交叉编译
|
2月前
|
开发工具 C++ git
QT基础【1-开发环境安装】
QT基础【1-开发环境安装】
|
7月前
|
Ubuntu 编译器 网络安全
RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
在之前的博文中已经搭建好了一个比较完善的ubuntu宿主机,都很完善了但是发现没有Qt交叉编译开发环境,所以还需要搭建一套Qt交叉编译开发环境。
|
8月前
|
XML 数据管理 编译器
Qt+GDAL开发笔记(二):在windows系统msvc207x64编译GDAL库、搭建开发环境和基础Demo
上一篇使用mingw32版本的gdal,过程曲折,为更好的更方便搭建环境,在windows上msvc方式对于库比较友好。
|
9月前
|
XML 数据管理 Linux
Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo
麒麟系统上做全球北斗定位终端开发,调试工具要做一个windows版本方便校对,北斗GPS发过来的是大地坐标,应用需要的是经纬度坐标,所以需要转换,可以使用公式转换,但是之前涉及到了另一个shang市公司项目使用WG,最终选择了GDAL库进行转换。
|
9月前
|
XML 编译器 数据库
QT --- VS嵌入QT开发环境搭建
QT --- VS嵌入QT开发环境搭建
138 0
|
计算机视觉
window10环境下配置qt使用opencv开发环境
window10环境下配置qt使用opencv开发环境
103 0

热门文章

最新文章

推荐镜像

更多