Qt/Embedded嵌入式开发环境的建立

一.             开发环境
(1)        Red Hat Enterprise Linux 5
(2)        Linux Kernel 2.6.18
(3)        (Qt开发包)  qt-x11-2.3.2.tar.gz
(4)        (Qt/Embedded开发包) qt-embedded-2.3.10-free.tar.gz
(5)        (自动创建Makefile文件的工具) tmake-1.13.tar.gz
(6)        编译器 gcc-4.1.2
二.             解压安装包并设置环境变量
(如下均假设在/root/qte目录下进行)
(1)        安装tmake:
#cd ~/qte
#tar zxvf tmake-1.13.tar.gz
#export TMAKEDIR=$PWD/tmake-1.13
(2)        安装qt:
#cd ~/qte
#tar zxvf qt-x11-2.3.2.tar.gz
#export QT2DIR=$PWD/qt-2.3.2
(3)        安装qte:
#cd ~/qte
#tar zxvf qt-embedded-2.3.10-free.tar.gz
#export QTEDIR=$PWD/qt-2.3.10
三.             编译Qt 和Qt/Embedded
(1)       编译Qt:
#cd $QT2DIR
//设置环境变量
#export TMAKEPATH=$TMAKEDIR/lib/linux-g++
#export QTDIR=$QT2DIR
#export PATH=$QTDIR/bin:$PATH
//将Qt库加入到系统共享库中
#ldconfig $QTDIR/lib
//开始编译
#make clean
//configure命令对Qt进行编译设置,其包含很多选项,可通过./configure –help
//来获取详细的帮助信息。
#./configure -no-xft –system-jpeg
#make
//将uic工具复制到Qt/Embedded目录中,可覆盖原文件
#cp bin/uic $QTEDIR/bin/

在我执行“make命令的时候”,老是出现问题,编译不成功,气死人了。
后来我又看到了一篇博文关于如何解决编译出现的问题,而其中的一些问题恰好遇到,顿时泪流满面啊!
按照所说,修改以后,执行make命令就可以编译成功了。
这是我编译的时候遇到的问题和解决方案:

编译过程出现错误:

error 1


/root/2410clQt/qt-2.3.2/include/qvaluestack.h:57: 错误:不能将‘int remove(const char*)’的实参‘1’从‘QValueListIterator<QMap<QString, QString> >’转换到‘const char*’
/root/2410clQt/qt-2.3.2/include/qvaluestack.h: In member function ‘T QValueStack<T>::pop() [with T = QString]’:
xml/qxml.cpp:2502:   instantiated from here
/root/2410clQt/qt-2.3.2/include/qvaluestack.h:57: 错误:不能将‘int remove(const char*)’的实参‘1’从‘QValueListIterator<QString>’转换到‘const char*’
make[2]: *** [xml/qxml.o] 错误 1
make[2]: Leaving directory `/root/2410clQt/qt-2.3.2/src'
make[1]: *** [sub-src] 错误 2
make[1]: Leaving directory `/root/2410clQt/qt-2.3.2'
make: *** [init] 错误 2


solving :

gedit $QTDIR/include/qvaluestack.h &

将remove( this->fromLast() );改为this->remove( this->fromLast() );


在我看到的这篇文章里,还有其他问题的解决方案,也许大家会遇到,我将链接放在这里。

http://blog.csdn.net/ggbondg/article/details/4188436



uic工具要qt-x11编译成功以后才会在bin目录下出现,开始因为我没有编译成功,没有uic这个工具,老是百度都没有,而后面编译的时候老时说没有“uic”这个命令。

(2)       编译qvfb:
//qvfb工具用来生成Virtual Frame Buffer,它可以模拟在嵌入式开发板上的显示
//状况,如果在qvfb中模拟运行没有问题的话,就可以直接通过交叉编译在
//开发板上运行了。
#cd $QTEDIR/tools/qvfb
//设置环境变量
#export PATH=$TMAKEPATH/bin:$PATH
#make clean
//用tmake自动创建Makefile文件
#tmake -o Makefile qvfb.pro
//开始编译
#make
//将qvfb工具复制到Qt/Embedded目录中,可覆盖原文件
#cp qvfb $QTEDIR/bin
(3)       编译Qt/Embedded:
#cd $QTEDIR
//设置环境变量
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
#export QTDIR=$QTEDIR
#export PATH=$QTDIR/bin:$PATH
//将Qt/Embedded库加入到系统共享库中
#ldconfig $QTDIR/lib
#make clean
//开始编译
//configure中的选项-qvfb用来对Virtual Frame Buffer进行支持,-depths用来
//支持4位、8位、16位、32位的显示深度
#./configure -no-xft –system-jpeg -qvfb -depths 4,8,16,32
#make

这里我进行编译的时候,同样遇到了问题,但是根据上面我看到的这篇博文,还是从中找到了答案!
再次感谢他们的文章。
这是我执行编译的时候遇到的问题。

error3
/zylinux/x86-qtopia/qt-2.3.7/include/qwindowsystem_qws.h:229: 错误:‘QWSInputMethod’未声明

gedit qwindowsystem_qws.h

在前面增加以下一行

class QWSInputMethod;

error5
qvaluestack.h:57: 错误:不能将‘int remove(const char*)’的实参‘1’从‘QValueListIterator<QString>’转换到‘const char*’
与error1同解

参照文档中的解决方法都可以解决。

四.             建立开发环境的初始变量
#vi ~/.bashrc
export TMAKEDIR=~/qte/tmake-1.13
export QT2DIR=~/qte/qt-2.3.2
export QTEDIR=~/qte/qt-2.3.10
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$TMAKEPATH/bin:$PATH
五.             设置Qt/Embedded 开发的共享库
//通过在ld.so.conf文件中加入开发库的绝对路径,将开发库设置成Linux
//共享库,以后就可以直接在项目源代码中使用include预编译指令加载
//Qt和Qt/Embedded开发库中的类了。
#vi /etc/ld.so.conf
       /root/qte/qt-2.3.2/lib
       /root/qte/qt-2.3.10/lib
六.             测试Virtual Frame Buffer
#cd $QTEDIR/examples/launcher
#qvfb -width 640 -height 480 &
#sleep 10
#./launcher –qws
最后我终于成功了,一天了,终于成功了不容易啊!
左问度娘,右问度娘。
问题终于解决了。

我不得不承认一个事实,问度娘也是有技巧的。
有时当我们想找一个答案的时候,这样问没有答案,那样问却有,而自己感觉两个问题意思差不多啊!
呵呵!!!

这是我参考的文章:
http://blog.csdn.net/do2jiang/article/details/5169193
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt/Embedded是一种用于嵌入式系统的Qt应用程序开发框架。它允许开发人员使用Qt的功能和特性来构建嵌入式系统的用户界面。下面是一个关于Qt/Embedded界面的实例。 假设我们正在开发一个智能家居控制系统,该系统具有温度控制、灯光控制和安全控制等功能。我们选择使用Qt/Embedded来开发这个系统的用户界面。 首先,我们可以使用Qt/Embedded提供的工具和库来创建各种界面元素,如按钮、滑块、文本框等。我们可以使用这些元素来设计一个直观且易于使用的界面。 例如,我们可以创建一个温度控制的界面,其中包含一个滑块用于调节温度,并显示当前的温度值。当用户拖动滑块时,系统会根据用户的输入来调节温度。 另外,我们可以创建一个灯光控制的界面,其中包含几个开关按钮用于控制不同的灯光。当用户点击开关按钮时,系统会相应地打开或关闭对应的灯光。 还可以创建一个安全控制的界面,其中包含一个安全码输入框和一个解锁按钮。当用户输入正确的安全码并点击解锁按钮时,系统会解锁并执行相应的安全操作。 除了基本的界面元素外,Qt/Embedded还支持丰富的图形和动画效果。我们可以使用这些功能来增强界面的可视化效果,提升用户体验。 总之,Qt/Embedded提供了一个可靠和灵活的开发框架,使我们能够轻松地创建嵌入式系统的用户界面。通过使用Qt/Embedded,我们可以实现直观、易用且功能齐全的界面,使得用户能够方便地控制和操作嵌入式系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值