[linux]QT/E2.3.7、QT/X11-2.3.2、TMAKE-1.11的安装问题 收藏
如何搭建QT/Embedded的开发环境,想来类似的资料在网上已经很多了,但是linux的安装不比windows,有着太多的选项可以选择,同时也有着很多的不定因素,这里,我仅对自己如何搭建以及其中出现的问题,并如何解决的等问题进行说明,希望能对广大嵌入式爱好者提供一点帮助!
一般来说,居于 Qt/Embedded 开发的应用程序最终会发布到安装有嵌入式 Linux 操作系统的小型设备上,所以使用装有 Linux 操作系统的 PC 机或者工作站来完成 Qt/Embedded 开发当然是最理想的环境,尽管 Qt/Embedded 也可以安装在 Unix 和Windows系统上。
下面将介绍如何在一台装有 Linux操作系统的机器上建立 Qt/Embedded开发环境。
首先,您需要拥有三个软件安装包:tmake 工具安装包,Qt/Embedded 安装包,Qt 的X11版的安装包。由于上述这些软件安装包有许多不同的版本,您要注意由于版本的不同导致这些软件在使用时可能造成的冲突,为此将告诉您一些基本的安装原则:当您选择或下载了 Qt/Embedded 的某个版本的安装包之后,您下一步要选择安装的 Qt for X11 的安装包的
版本必须比您最先下载的 Qt/Embedded 的版本要旧,这是因为 Qt for X11 的安装包的两个工具 uic 和 designer 产生的源文件会和qt/Embedded 的库一起被编译链接,本着“向前兼容”的原则,Qt for X11 的版本应比 Qt/Embedded 的版本旧。
将以下面所列版本的安装包,一步一步介绍 Qt/Embedded 开发环境建立的过程(这些软件可以免费从 trolltech 的WEB 或FTP 服务器上下载),
◆ tmake 1.11 或更高版本; (生成Qt/Embedded应用工程的 Makefile 文件)
◆ Qt/Embedded 2.3.7 (Qt/Embedded 安装包)
◆ Qt 2.3.2 for X11; (Qt 的 X11 版的安装包, 它将产生 x11 开发环境所需要的两个工具)
1.安装tmake 1.11
#tar -xzf tmake-1. 解压缩tmake软件包到当前目录
#export TMAKEDIR=$PWD 将TMAKEDIR的目录指定为当前的目录PWD
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
#export PATH=$TMAKEDIR/bin:$PATH
2.安装Qt/Embedded 2.3.7
#tar -xzf qt-embedded-2.3. 解压
#cd qt-2.3.7 进入到qt的源文件目录中
#export QTDIR=$PWD
#export QTEDIR=$QTDIR
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QRDIR/lib:$LD_LIBRARY_PATH
#./configure -xplatform linux-arm-g++ -shared -debug -qconfig local -qvfb -depths 4,8,16,32
在优龙YLE2440开发板的源代码目录下有个头文件:qconfig-local.h,需要在执行该行命
令前将其拷贝到 qt-2.3.7/src/tools目录下,然后再运行该行的 ./configure 命令,否则会提示不到qconfig-local.h头文件;有不明白的地方可以运行 ./configure -h 寻帮助。另外,-xplatform linux-arm-g++ -shared -debug 选项必须写,否则在后期编译程序时会出现多处错误。
#make sub-src 按精简方式编译开发包
3.安装Qt/X11 2.3.2
#tar -xzf qt-x11-2.3.
#cd qt-2.3.2
#export QTDIR=$PWD
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#./configure -no-opengl -no-xft
这一步非常重要,网上很多朋友在安装Qt/X11时都会出现问题,而出现问题最多的地方就在这里,如果没有-no-xft选项,则在安装时会出错,提示不到/usr/inclue/freetype中的freetype.h头文件,再增加了该选项后,./configure 会顺利通过。
#make 编译
#make -C tools/qvfb
#mv tools/qvfb/qvfb bin
有些朋友的开发环境可能需要下面一步:
#cp bin/uic $QTEDIR/bin
有些朋友在安装Qt/X11时会出现下列情况:
执行 ./configure -no-opengl -no-xft 后,make时能不能顺利通过,这有可能是你的系统
中没有编译所需要的uic和moc,他们应该在bin这个文件夹中,但是事实上并没有,所以编译的时候一般要从Qtpia中考过来,然后再编译就好了:
#cp ../qtopia/src/qt/qconfig-qpe.h src/toos/
以上为个人对搭建Qt/Embedded开发环境的一点体验,欢迎大家补充。经过上述步骤,在虚拟机rh9环境下编译YLE2440开发板中提供的hello程序顺利通过。
本文来自CSDN博客,转载请标明出处:blog.csdn/nick0411/archive/2008/08/21/2806666.aspx
在fedora7下安装qt-x11-2.3.2和qt-embedded-2.3.2时出现的错误与修改方法
linux系统安装步骤csdn2008-11-14 12:11
安装方法:把qt-x11-2.3.放到/home下 sudo tar vxzf qt-x11-2.3. cd qt-x11-2.3.2 export QTDIR =/home/qt-x11-2.3.2 ./configure -help sudo ./configure -platform linux-g++ -thread -system-jpeg -gif -no-xft sudo make qt/embedded安装 不是交叉编译时: sudo ./configure -xplatform linux-x86-g++ -thread -qvfb 典型错误如下: xml/qxml.cpp:2502: instantiated from here /usr/local/arm/QT/qt-2.3.7/include/qvaluestack.h:57: error: cannot convert ‘QValueListIterator<QString>’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’ make[2]: *** [xml/qxml.o] 错误 1 make[2]: Leaving directory `/usr/local/arm/QT/qt-2.3.2/src' make[1]: *** [sub-src] 错误 2 make[1]: Leaving directory `/usr/local/arm/QT/qt-2.3.2' make: *** [init] 错误 2 这个错误是说,在文件qvaluestack.h的57行出错。改正方法是修改文件qt-2.3.7/src/tools/qvaluestack.h的 第57行,将remove( this->fromLast() );改为this->remove( this->fromLast () ); 修改时可能要更改文件权限,变成可写的,虽然在错误信息里qvaluestack.件是在qt-2.3.7/include/下,但要修改的文件要在qt-2.3.7/src/下,不在kernel里就在tools里。 还有一个典型错误是说, 在文件qwindowsystem_qws.h中缺少一个叫做QWSInputMethod的类,修改方法为修改文件qt-2.3.7/src/kernel/qwindowsystem_qws.h,增加一个类class QWSInputMethod; 我最头疼的一个错误 /root/2410/qt-2.3.7/include/qsortedlist.h: In destructor `QSortedList<type>::~QSortedList()': /root/2410/qt-2.3.7/include/qsortedlist.h:51: error: there are no arguments to `clear' that depend on a template parameter, so a declaration of `clear' must be available /root/2410/qt-2.3.7/include/qsortedlist.h:51: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) make[2]: *** [allmoc.o] 错误 1 make[2]: Leaving directory `/root/2410/qt-2.3.7/src' make[1]: *** [sub-src] 错误 2 make[1]: Leaving directory `/root/2410/qt-2.3.7' make: *** [init] 错误 2 这个错误是说,在文件qsortedlist.h的第51行,clear没有声明,不可用,原代码在qt-2.3.7/src/tools/下,51行是 ~QSortedList() { clear(); },我猜把它改成~QSortedList() { },或者 ~QSortedList() {int clear(); },都可以make通过。但不知道有没有隐患。 kernel/qgfxraster_qws.cpp:5631: instantiated from here kernel/qgfxraster_qws.cpp:3635: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:3708: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:3831: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:3849: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:4119: 警告:‘myptr’ 上的运算结果可能是未定义的 make[3]: *** [kernel/qgfxraster_qws.o] 错误 1 make[3]: Leaving directory `/home/qte-2.3.2/src' make[2]: *** [src-mt] 错误 2 make[2]: Leaving directory `/home/qte-2.3.2' make[1]: *** [src-mt] 错误 2 make[1]: Leaving directory `/home/qte-2.3.2' make: *** [init] 错误 2 把*myptr++ = (*myptr & 0x0f)改为int *myptr++ = (*myptr & 0x0f) ernel/qgfxraster_qws.cpp:5631: instantiated from here kernel/qgfxraster_qws.cpp:3635: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:3708: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:3831: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:3849: 警告:提领类型双关的指针将破坏强重叠规则 kernel/qgfxraster_qws.cpp:4118: 警告:未使用的变量 ‘rgb’ make[3]: *** [kernel/qgfxraster_qws.o] 错误 1 make[3]: Leaving directory `/home/qte-2.3.2/src' make[2]: *** [src-mt] 错误 2 make[2]: Leaving directory `/home/qte-2.3.2' make[1]: *** [src-mt] 错误 2 make[1]: Leaving directory `/home/qte-2.3.2' make: *** [init] 错误 2 注释了rgb。 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论