编译运行qtopia文档
qtopia for arm and x86 编译过程

qtopia for arm and x86 编译过程系统是完全安装RedHat9.0,板子是远峰的2410II交叉编译所用到的文件:qt-embedded-2.3.10-free.tar.gzqt-x11-2.3.2.tar.gzqtopia-free-source-2.1.1.tar.gztmake-1.13.tar.gze2fsprogs-1.35.tar.gzqtopia for x86的编译步骤:tar xfz qt-embedded-2.3.7.tar.gzexport QTEDIR=$PWDtar xfz qt-x11-2.3.2.tar.gzexport QT2DIR=$PWDtar xfz qtopia-free-1.7.0.tar.gzexport QPEDIR=$PWDtar xfz tmake-1.13.tar.gzexport TMAKEDIR=$PWDexport TMAKEPATH=$PWD/tmake-1.13/lib/qws/linux-x86-g++ export PATH=$TMAKEDIR/bin:$PATHcd qt-2.3.2export QTDIR=$QT2DIRexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH./configure -no-xftmakemake -C tools/qvfbcd ..cd qt-2.3.7export QTDIR=$PWDexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHcp $QT2DIR/bin/uic bincp $QT2DIR/tools/qvfb/qvfb bincp $QPEDIR/src/qt/qconfig-qpe.h src/tools/./configure -qconfig qpe -qvfb -thread -system-jpeg -gif -depths 4,8,16,32 makecd ..tar xzf e2fsprogs-1.35.tar.gzcd e2fsprogs-1.35./configure -enable-elf-shlibsmake install注:这是编译x86的libuuid库cd ..cd qtopia-free-1.7.0export PATH=$QPEDIR/bin:$PATHexport LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH cd src./configuremake以上步骤按照qtopia的doc里步骤就可以了。
qtopia应用程序编译及仿真

Qtopia 应用程序编译及仿真Qtopia 应用程序编译及仿真一、编译过程解压qtopia-free-2.2.0.tar.gz,并将解压后的文件夹改名为qtopia-host.编译方法以及参数设置可以查看顶层目录下的configure脚本文件的内容以及帮助信息.#./configure -qte no-keypad -qpe pda#make#make installqtopia2.2.0 版本自带了一些编译的环境变量的配置脚本,可以自动帮我们配置并编译qt-x11-2.x,qt-x11-3.x,qte-2.x 和qtopia-2.2.0,并进行目录结构的组织.注意:(1)qt-x11-2.x和qte-2.x是由源码包中的qt2目录编译得到; qt-x11-3.x是由dqt编译得到;(2)在编译前进行configure 时可以采用-prefix 选项来指定安装时的image 目录(可参考QT官方相关文档:Build from Source以及running Qtopia).二、make install 之后的image 文件夹make install之后会在./qtopia/image下有image文件夹,即./qtopia/image/opt/Qtopia目录.目录下有bin,lib,etc,apps...等等文件夹,实际上对应于要烧录进嵌入式文件系统的文件结构组织.-> lib 下有运行qtopia 应用程序的全部库,如libqte,libqpe,libqtopia 等等,注意由于是主机版,没有编译触摸屏的库,因此这里没有libts.-> bin下则是qtopia 应用程序,包括qpe,quicklaucher 等,另外还有clock,addressbook....-> 用于在主机上仿真PDA 的qtopia 环境的startdemo 脚本也在这个bin 目录下,注意,在./qtopia/bin下只有qpe,quicklaucher等服务程序,而没有clock,addressbook...等应用程序,因此,如果象qtopia1.7.0一样设置环境变量,先运行qvfb再运行这个qpe,图标对应的应用程序是无法执行的.而startdemo 会自动调用qvfb 并且将image 下的qtopia 文件系统加载到qvfb 中运行.关于环境变量的设置,后面介绍.三、在主机上开发并仿真qtopia 应用程序开发应用程序所需要的:(1)工具:qvfb(仿真),qmake(生成makefile),uic(编译ui 文件),designer(图形化界面设计工具)(2)库:libqte, libqpe, libqtopia 等(与运行时所需库相同,因为是动态共享库)(3)与库对应的头文件!因此在开发qtopia 应用程序时,必须将这些环境变量设置好.可编写脚本setdevenv.sh 如下:#!/bin/shTMAKEDIR=/opt/qtopia-host/tmakeTMAKEPATH=/opt/qtopia-host/tmake/lib/qws/linux-generic-g+ +QMAKESPEC=qws/linux-generic-g++QPEDIR=/opt/qtopia-host/qtopia/QTDIR=/opt/qtopia-host/qt2/PATH=$TMAKEDIR/bin:$QPEDIR/bin:$QTDIR/bin:$PATHLD_LIBRARY_PATH=$QPEDIR/image/opt/Qtopia/lib:$QTDI R/lib:$LD_LIBRARY_PATHexport TMAKEDIR TMAKEPATH QTDIR QPEDIR PATH LD_LIBRARY_PATH QMAKESPEC可以看到,所用的lib 虽然是设置为image下的lib,但image下却没有相关的头文件(没有include 文件夹,image只提供程序运行支持,不提供源码编译以及链接支持),因此,必须另外设置QPEDIR和QTDIR,以在编译qtopia应用程序时,可以找到相关的头文件.在这个脚本的环境变量设置下,编译好qtopia应用程序后,可以使用startdemo来调用qvfb进行仿真,界面如下.如果先启动qvfb,再启动qpe,虽然可以看到仿真界面,但其自带的一些应用程序是无法运行的,因为qpe加载QPEDIR指定的文件系统目录,而qtopia2.2.0的应用程序可执行文件放在image 下的bin 目录中;而startdemo 则总是加载image 下的Qtopia文件系统.因此,使用startdemo仿真时,所开发的应用程序以及.desktop和图标等也要放在image下相应的目录下.关于工具列表:/opt/qtopia-host/qt2/bin/designer/opt/qtopia-host/qt2/bin/qvfb/opt/qtopia-host/qt2/bin/uic/opt/qtopia-host/qtopia/bin/qmake (1.06c-Qtopia, Qt 3.2.1)注意在/opt/qtopia-host/dqt/bin/下也有qmake(1.07a, Qt 3.3.5),不过两者版本不同.可以使用./qmake -v命令查看.如果要使用qvfb 下启动qpe 的办法来仿真(好处是可以配置qvfb 窗口大小),则需要将qvfb 链接到PATH 内,并编写环境变量配置脚本setsimenv.sh 如下:#!/bin/shQPEDIR=/opt/qtopia-host/qtopia/image/opt/QtopiaQTDIR=$QPEDIRPATH=$QPEDIR/bin:/opt/qtopia-host/qt2/bin:$PATHLD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH export QPEDIR QTDIR PATH LD_LIBRARY_PATH 仿真时输入命令:#qvfb&#qpe&仿真界面如下:四、关于Qtopia2.2.0 的文件系统组织结构'/'代表$QPEDIR应用程序可执行文件example -> /bin/example应用程序qtopia 桌面图标example.png ->/pics/example/example.png (32*32pixels)应用程序.desktop文件->/apps/Applications/example.desktop注意.desktop文件的格式与qtopia1.7.0版本稍有不同,例如clock.desktop:[Translation]File=QtopiaApplicationsContext=Clock[Desktop Entry]Comment[]=A Clock Program #应用程序说明Exec=clock #/bin下可执行文件名Icon=Clock #/pics/clock/Clock.png,不用写后缀.pngType=Application #qtopia 程序类型(Application/Game/Setting)Name[]=Clock #桌面图标下显示的名字五、Qtopia 应用程序在主机上仿真运行如果使用上面的setsimenv.sh进行环境变量的设置,可以有两种方式进行仿真:(1)先启动qvfb:#qvfb&再将应用程序example作为qte服务程序运行:#./example -qws(2)将应用程序example 作为应用程序添加到qtopia 相关目录(包括可执行文件,图标,.desktop文件),然后启动qvfb再启动qpe来加载qtopia桌面环境,点击example桌面图标运行程序.也可以使用startdemo进行加载.如果使用上面的setdevenv.sh进行环境变量的设置,在第二种方法中,只能用startdemo 加载.。
[VIP专享]实验-Qt移植
![[VIP专享]实验-Qt移植](https://img.taocdn.com/s3/m/98f52b84866fb84ae55c8d11.png)
实验一 Qtopia试用【实验内容】试用Qtopia【实验环境】1、Ubuntu 8.10发行版2、linux-2.6.22.6内核3、FS2410平台【实验步骤】一Qtopia编译环境拷贝Qtopia.tar.gz到/home/linux下二Qtopia运行环境三系统启动启动目标板在目标板上运行下列操作这个时候我们就可以看到一个漂亮的桌面系统了四程序编写实验二触摸屏驱动的移植【实验目的】触摸屏驱动的移植【实验环境】1、Ubuntu 8.10发行版2、FS2410平台以及开发板中移植好的u-boot-1.3.1,编译好的Linux-2.6.22内核3器译编叉交、arm-softfloat-linux-gnu-gcc-3.4.5【实验步骤】在这个实验前必须添加对framebuffer的支持(1)首先打一个补丁:s3c2410_touchscreen.patch,(2)然后修改arch/arm/mach-s3c2410/mach-smdk2410.c添加如下代码:结构体指针数组里添加:&s3c_device_ts,然后在smdk2410_map_io函数里添加:set_s3c2410ts_info(&smdk2410_ts_cfg);华清远见--嵌入式学院第二期课程实验手册v2.0(5)修改arch/arm/mach-s3c2410/mach-h1940.c(8)拷贝zImage到tftpboot下(9)系统启动以后会在dev目录下产生event0 和mouse0两个设备节点,它们就是触摸屏的设备节点。
实验三uda1341驱动的移植【实验目的】Uda1341驱动的移植【实验环境】1、Ubuntu 8.10发行版2、FS2410平台以及开发板中移植好的u-boot-1.3.1,编译好的Linux-2.6.22内核3器译编叉交、arm-softfloat-linux-gnu-gcc-3.4.5【实验步骤】7、拷贝zImage到tftpboot下8、系统启动以后会在dev目录下产生dsp设备节点实验四 tslib的移植【实验目的】tslib移植【实验环境】1、Ubuntu 8.10发行版2、FS2410平台以及开发板中移植好的u-boot-1.3.1,编译好的Linux-2.6.22内核3器译编叉交、arm-softfloat-linux-gnu-gcc-3.4.5【实验步骤】下面的步骤是在ubantu-8.10环境下编译的,其它的系统基本相同。
qtopcua 编译

qtopcua 编译
Qtopcua是一个C++编写的OPC UA客户端/服务器框架,它可以用于实现通用的工业自动化控制系统。
Qtopcua提供了开发者友好的API和组件,使得使用它来实现OPC UA应用程序变得非常容易。
Qtopcua编译可以使用Qt Creator或CMake来完成。
对于Qt Creator,开发者只需要打开qtopcua.pro文件即可进行编译。
对于CMake,开发者可以按照以下步骤进行编译:
1. 创建一个名为“build”的build目录。
2. 在终端中进入该目录并运行“cmake ..”。
3. 运行“make”进行编译。
编译完成后,开发者可以在库的安装目录下找到生成的库文件和头文件。
可以将这些文件添加到自己的应用程序中并使用Qtopcua的功能。
开发者还可以使用示例代码来了解如何使用Qtopcua来实现OPC UA 应用程序。
Qtopcua提供了丰富的功能,包括:节点浏览、节点读取、节点写入、事件订阅、历史数据查询、安全认证等。
开发者可以根据需要使用这
些功能来实现自己的应用程序。
同时,Qtopcua对高并发、高可用性
和高性能的支持也非常好,可以满足各种工业自动化控制系统的要求。
总之,Qtopcua是一个非常好用的OPC UA框架,它可以帮助开发者快速轻松地实现各种OPC UA应用程序,为工业自动化控制系统的实
现提供了强大的支持。
9、Qtopia安装与编译

QTOPIA_ADD_APPLICATION(“hello”,hello) 主界面的名称 QTOPIA_MAIN
生成pro文件
使用tmake中的progen软件产生pro文件 progen progen –o hello.pro 修改pro文件 gedit hello.pro CONFIG = qtopia warn_on release
QT Embedded也是一种C/S结构,需要有一个QT application做QWS Server,程序启动时带有-qws参 数的就是QWS Server,不带这个参数就是QWS Client。因此任何一个基于QT的application都可以做 QWS Server。当然QWS Server一定先于QWS Client启动,否则QWS Client将启动失败。在实际应 用中,会指定某个特殊的application做QWS Server, 这个application一般还会管理一些其它的系统资源。 QWS Server是一个server socket,QWS Client是一 个client socket。QWS Client启动时会主动向QWS Server的server socket建立连接。而后就QWS Server通过这个socket传递QWSCommand和 QWSEvent来管理QWS Client。
使用uic转换(一)
建立ui转换的脚本文件 mkdir hello cd hello gedit ui2cpp 编写脚本 #!/bin/sh $QTDIR/bin/uic –o hello.h hello.ui $QTDIR/bin/uic –o hello.cpp –impl hello.h hello.ui $QTDIR/bin/moc hello.h –o moc_hello.cpp
Qtopia PDA 2.2.2 交叉编译过程

Qtopia PDA 2.2.2 交叉编译过程By nanfansky@2006-12-10HOST 环境:2.8cpu:intelp4内存:1g系统:redhat 9 完全安装交叉工具arm 2.95.3TARGET环境2440arm240*320屏外加触摸屏jffs2文件系统软件:cross-2.95.3.tar.bz2qtopia-free-src-2.2.0.tar.gze2fsprogs-1.35.tar.gzjpegsrc.v6b.tar.gzlibpng-1.2.14.tar.bz2tslib-1.3.tar.bz2zlib-1.2.3.tar.bz2我的arm-linux-gcc 已安装到/usr/local/arm/2.95.3/bin/,并已设置$PATH变量编译步骤:1.解压qtopia-free-src-2.2.0.tar.gz,将其mv qtopia-free-2.2.0 到 /home/qtopia_x86cd/home/qtopia_x86./configure得到本机运行版本uic 工具解压qtopia-free-src-2.2.0.tar.gz 将其mv至 /home/nfs/qtopia-free-2.2.0/cp/home/qtopia_x86/qt2/bin/uic /home/nfs/qtopia-free-2.2.0/qt2/bin/2.编译相关库将上面的e2fsprogs-1.35.tar.gz,jpegsrc.v6b.tar.gz, libpng-1.2.14.tar.bz2,tslib-1.3.tar.bz2, zlib-1.2.3.tar.bz2 解压至/home/arm目录,并相应更名目录为e2fs jpeg libpng tslib zlib并建立mkdir /home/arm/lib ;mkdir /home/arm/include (这两个目录是存放编译后的库与头文件,为后面交叉编译用)e2fs:./configure --host=arm-linux --enable-elf-shlibs --with-cc=arm-linux-gcc--with-linker=arm-linux-ld --prefix=/usr/local/arm/2.95.3/arm-linux make/home/arm/liblib/libuuid.so*cpjpeg:–enable-shared./configurevi Makefile修改:arm-linux-gccCC=AR= arm-linux-ar rcAR2=arm-linux-ranlibmakezlib:/home/arm/zlibcd–shared./configurevi Makefile修改:[begin]...CC=arm-linux-gcc...-shared-Wl,-soname,libz.so.1 LDSHARED=arm-linux-gcc-ECPP=arm-linux-gcc...rcAR=arm-linux-arRANLIB=arm-linux-ranlib...=/usr/local/arm/2.95.3/arm-linuxprefix...[end]make/home/arm/lib/libz.so*cp*.h/home/arm/include/cplibpng:/home/arm/libpngcp scripts/makefile.linux ./Makefilevi Makefile修改:[begin]...rcAR_RC=arm-linux-arCC=arm-linux-gcc...RANLIB=arm-linux-ranlib...prefix=/usr/local/arm/2.95.3/arm-linux...[end]makelibpng12.so* /home/arm/lib/cp/home/arm/lib/libpng.solibpng12.socp/home/arm/include/cp*.htslib:/home/arm/tslib./autogen.shecho>arm-linux.cache"ac_cv_func_malloc_0_nonnull=yes"--cache-file=arm-linux.cache –enable-inputapi=no--host=arm-linux./configure在make之前,为了支持触摸屏,这里有一点小小的修改,打开src/ts_read_raw.c文件,查看你的触摸屏驱动程序数据结构,看与ts_read_raw.c结构中的哪个一样,就将代码中的*defaulttseventtype="UCB1x00";char修改为*defaulttseventtype="H3600"; //这里因为我的驱动是h3600_ts_event结构,修改 char为你驱动对应的结构,如果你触摸屏驱动程序支持ioctrl操作,上面的configure操作中的[—enable-inputapi=no]你可以删除。
Build_Qtopia_for_x86

Build Qtopia for x86一、相关工具以及软件包:Cross-compiler Toolchains提供arm交叉编译工具e2fsprogs-1.35.tar.gz 用于编译生成libuuid库tmake-1.11.tar.gz 生成makefileqt-embedded-2.3.7.tar.gz Qt/Embeddedqt-x11-2.3.2.tar.gz Qt/X11,提供uic,qvfbqtopia-free-1.7.0.tar.gz Qtopia将这些工具和软件包保存到/qte_x86/目录,并解压缩。
注意Toolchains已保存到/opt/xscalev1/bin。
二、安装tmake:tmake用于交叉编译生成qt应用程序的makefile,也可用于生成qt的本地makefile,区别在于设置TMAKEPATH路径的不同,一个用于arm,一个用于x86。
注意:tmake机器上本来就有,但是需要1.11以上版本,可用tmake –v查看版本信息。
设置tmake环境变量:# export PATH=/qte_arm/tmake-1.11/bin:$PATH# export TMAKEDIR=/qte_arm/tmake-1.11# export TMAKEPATH=/qte_arm/tmake-1.11/lib/qws/linux-arm-g++实际操作成功后才发现TMAKEPATH中用的是lib/qws/linux-arm-g++,不知道为什么能成功。
按理说应该使用lib/qws/linux-x86-g++。
三、安装e2fsprogs:# cd e2fsprogs# ./configure –enable-elf-shlibs# make# make install lib/uuid 或# cd lib/uuid # make install其中lib目录下的libuuid.so.1.2、libuuid.so.1、libuuid.so即是我们要编译的库,必须检查是否出现以及相应格式,否则说明编译不成功。
python qt 编译

python qt 编译要在Python中使用Qt,您需要首先安装PyQt库。
安装方法如下:1. 打开命令行终端(Windows用户可以使用CMD,Mac和Linux用户可以使用终端)。
2. 输入以下命令来安装PyQt库:`pip install pyqt5`(如果您使用的是Python 2.x,请使用`pip install pyqt4`)。
3. 等待安装完成。
安装完成后,您可以开始编写和运行使用Qt的Python程序了。
以下是一个简单的示例:```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QLabel, QMainWindowif __name__ == "__main__":app = QApplication(sys.argv)window = QMainWindow()window.setWindowTitle("Hello World!")window.setGeometry(100, 100, 300, 200)label = QLabel("Hello, Qt!", window)label.setGeometry(50, 50, 200, 100)window.show()sys.exit(app.exec_())```这个示例创建了一个简单的窗口并在窗口中显示一个标签。
您可以将上述代码保存为`.py`文件,然后运行它来看到结果。
在编写完成程序后,您可以使用Python解释器来运行它。
只需在命令行中输入`python your_program.py`(`your_program.py`是您保存代码的文件名)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译运行qtopia文档
一、软件包列表:
tmake-1.11.tar.gz
qt-x11-2.3.2.tar.gz
qt-embedded-2.3.7.tar.gz
e2fsprogs-1.38.tar.gz
qtopia-free-1.7.0.tar.gz
二、假设上述所有软件包都在同一个目录qtopia下。
解压软件包:
# tar zxvf tmake-1.11.tar.gz
# tar zxvf qt-x11-2.3.2.tar.gz
# tar jxvf qt-embedded-2.3.7.tar.bz
# tar zxvf e2fsprogs-1.38.tar.gz
# tar zxvf qtopia-free-1.7.0.tar.gz
1、编译qt-x11-2.3.2。
编译它的目的是要得到它bin目录下的uic。
注意:要先修改./qt-2.3.2/include/qvaluestack.h中的57行,改为:this -> remove (this -> fromLast());不修改会编译出错。
# export TMAKEDIR=$PWD/tmake-1.11
# export TMAKEPATH=$PWD/lib/qws/linux-x86-g++
# export QTDIR=$PWD/qt-2.3.2
# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
# export PATH=$TMAKEDIR/bin:$QTDIR/bin:$PATH
# cd qt-2.3.2
# ./configure –thread –system-jpeg –no-opengl –no-xft –platform linux-g++
# make
即完成qt-x11-2.3.2的编译。
2、编译qt-embedded-2.3.7。
修改/qtopia-free-1.7.0/src/qt/qconfig-qpe.h,在最后面加上一句:
#define QT_QWS_IPAQ
# cd ../
# cp ./qt-2.3.2/bin/uic ./qt-2.3.7/bin
# cp ./qtopia-free-1.7.0/src/qt/qconfig-qpe.h ./qt-2.3.7/src/tools
# export QTDIR=$PWD/qt-2.3.7
# export QPEDIR=$PWD/qtopia-free-1.7.0
# export TMAKEDIR=$PWD/tmake-1.11
# export TMAKEPATH=$TMAKEDIR/lib/qws/linux-mips-g++
# export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
# export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
# cd qt-2.3.7
# echo yes | ./configure –xplatform linux-mips-g++ -qconfig qpe –depths 8,16,24,32
# make
即完成qt-embedded-2.3.7的编译。
3、编译e2fsprogs-1.38,为了得到uuid库。
# cd ../e2fsprog-1.38
# ./configure
# make
# make check
# cp –rf ./lib/uuid ../qtopia-free-1.7.0/include
# cp ./lib/uuid/libuuid.a ../qtopia-free-1.7.0/lib
# cd ..
4、编译qtopia-free-1.7.0
# cd qtopia-free-1.7.0/src
# ./configure –xplatform linux-mips-g++
# make
即完成对qtopia-free-1.7.0的编译。
在bin目录下生成了应用程序集,在lib目录下生成了一系列的qtopia库。
5、移植qtopia-free-1.7.0到3210板上跑。
将qtopia-free-1.7.0目录下的example和src目录删除后将整个包放进根文件系统中下到板上后设置好库的路径以及添加字库fonts目录到指定路径下即可。