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,如需转载请自行联系原作者


相关文章
|
1月前
|
开发工具 C语言 Windows
【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程
【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程
53 0
|
传感器 XML 消息中间件
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
|
3天前
|
IDE Linux 开发工具
在Qt开发环境中qmake和cmake的区别优势
选择qmake还是CMake,主要取决于项目的需求和开发者的熟悉程度。如果你正在开发一个纯Qt项目,或者是一个不需要复杂构建脚本的小型项目,qmake可能是一个更好的选择。反之,如果你的项目需要处理复杂的依赖关系,或者你想要一个在多种编程环境中都能工作的构建系统,那么CMake可能是更好的选择。
15 2
|
8天前
|
计算机视觉
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
9 0
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
|
1月前
|
编译器
QT creator开发环境下 界面更改后运行程序不能实时更新或者在源文件添加该控件后无法编译的问题
在使用QT Creator开发界面的过程中,偶尔会出现添加控件后,运行程序后,界面控件无法更新的情况,或者在源文件使用该控件却出现无法编译的情况,使用QT Creator 4.8.2也会出现这个情况,也不知道这种情况会不会在以后有所改善。
78 0
|
1月前
|
开发工具 Windows
搭建 Qt 开发环境
搭建 Qt 开发环境
|
1月前
ffmpeg之QT开发环境搭建
ffmpeg之QT开发环境搭建
33 0
|
1月前
|
IDE 数据可视化 开发工具
【Qt】—— Qt开发环境的搭建
【Qt】—— Qt开发环境的搭建
|
1月前
|
开发工具 C++ git
QT基础【1-开发环境安装】
QT基础【1-开发环境安装】
|
9月前
|
Ubuntu 编译器 网络安全
RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
在之前的博文中已经搭建好了一个比较完善的ubuntu宿主机,都很完善了但是发现没有Qt交叉编译开发环境,所以还需要搭建一套Qt交叉编译开发环境。

推荐镜像

更多