qte环境搭建

11 篇文章 0 订阅

有些linux的光盘,需要的可以联系我,qq是602559817,每人最多3张

都有的触摸屏的支持:tslib 下载了qt-embedded-linux-opensource-src-4.5.3 分别存为两个文件夹xxx-x86和xxx-arm

同时为了获取qvfb(以前下过的没用了,版本不对),下载了qt-x11-opensource-src-4.5.3,直接解压。

* 首先,为了得到qvfb,进入qt-x11-opensource-src-4.5.2目录中。

网上的教程说只需进入tools/qvfb里,拷贝两个文件,qmake -project; qmake; make就可以了,但是我这里报错说../bin/里没有uic,发觉这个还是要自己编。于是开始编译这个硕大的东西: 1,configure,其实只是为了获得一个uic, qvfb,如果把整个都编译了

-qvfb是一定要的。因此这里没有考虑裁剪的配置命令就算: ./configure -qvfb 2,在差不多十几分钟的配置时间之后,就直接: make

3,在差不多1个小时之后,不用make install了,进入到tools/qvfb目录下,复制tools/shared/deviceskin/下的deviceskin.h, deviceskin.cpp 到该目录下,然后建立工程: qmake -project 然后 qmake 然后修改生成的Makefile文件,在LIBS后面添上-lXtst(当然如果没有这个库的话,需要自己装了: sudo apt-get install libxtst-dev) make 生成了qvfb的可执行文件,就是这个了。 ** 接下来进入qt-embedded-linux-opensource-src-4.5.2-pc,构建用于pc上模拟开发的库 1,./configure 以上进行配置,默认的配置选项可以通过./configure ---help了查看。要裁剪的话有自己配置 我这边的配置是: ./configure -opensource -qvfb -no-qt3support -no-webkit -platform linux-g++ 2,make 以我上面的配置,编译了3小时左右 3,sudo make install 因为在配置的时候没有指定安装路径,所以装在了/usr/local/Trolltec/QtEmbedded-4.5.2-i386/下 4,测试 首先运行刚才编译好的qvfb,然后进入到xxx/Trolltec/QtEmbedded-4.5.2-i386/example下,随意运行一个示例程序,比如 ./application -qws,就可以在qvfb里看到了。 5,为了编译自己的程序,需要配置好环境变量。因为之前为了运行一些KDE下的程序,使用apt安装过了qt4的开发包,因此系统里已经有了相应的 qmake之类的。那么如果说要能够使用刚编译好的,那么就需要调整环境变量来使用新的。其实如果不使用这些,也可以使用apt装好的来进行PC上的模拟开发。 这里有快速安装: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer libqt4-dev 以上就可以有了基本的PC上的qt编译环境,但是奇怪的是qt3里有个qt3-embedded-tools包,4却没有,因此需要前面的繁琐工作来编译qvfb。 如果是使用刚才编译好的,需要如下环境变量设置:(这部分以后有实际用qt开发再了弄) *** 最后要交叉编译QT库了。 1,进入到qt-embedded-linux-opensource-src-4.5.2-arm目录下,进行配置,我的配置如下: ./configure -xplatform qws/linux-arm-g++ -embedded arm -little-endian -opensource -no-largefile -no-qt3support -no-webkit -qt-gfx-linuxfb -depths 16/ -qt-kbd-tty -qt-kbd-usb -qt-mouse-pc -qt-mouse-bus -qt-mouse-yopy -qt-zlib -qt-gif -qt-libpng -qt-libjpeg 这里只是实验性的配置了一下,如有具体需要可以再裁剪的。但是这里有几个地方要注意,也不知道是不是我这边特有的现象: a,我试过将-prefix定义为arm所在目录下,但是总是在编译过程中有错误,所以还是装在了缺省的目录下; 错误如下: /media/f/QT/qt-embedded-linux-opensource-src-4.5.2-arm/bin/moc: error while loading shared libraries: /usr/local/arm/3.4.1/arm-linux/lib/libdl.so.2: ELF file OS ABI invalid b,对于交叉编译器,我对是arm-linux-3.4.1,低版本的就没用了,这个在官网上有说明; c,对于输入设备没有特别挑选,觉得可能的都选了。 关于配置更详细的参数说明还是要看configure --help里的说明,特别是里面有针对embedded部分的说明; 2,配置之后,在make 3,make完了之后,sudo make install。因为是装在缺省目录下(/usr/local/Trolltech/QtEmbedded-4.5.2-arm),所以要用sudo了; 4,在安装之后,网上的教程说要设置各种环境变量来配置qt开发环境。我这里没有配置qvfb模拟开发的环境,就直接配置为交叉编译的环境了 因为已经在系统里安装了乱七八糟的各种qt,但为了能够在编译时能够调用到交叉编译的qmake,所以在~/.bashrc下添加了: export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin:$PATH 这样的话机会优先调用arm下的qmake了。但配置生效后(一般是重开shell或者source ~/.bashrc),执行命令which qmake就可以看到具体路径了,但是奇怪的是whereis qmake还好死老样子。 5,我就只设置了这个环境变量,然后写了一个hello world,保存为main.cpp #include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label("Hello, world! from zhs"); label.show(); return app.exec(); } 然后执行:qmake -project; qmake; make,就生成了arm上运行的程序了。你可以看看Makefile里面的CC和CXX是不是arm-linux-g++,以确定是否为交叉编译。 **** 移植 最后就是要移植交叉编译好的库到板子上了。首先还是直接用nfs挂载,因此就不用考虑哪些要,哪些不要,统统都搬到目录下了,以后再裁剪吧 1,拷贝/usr/local/Trolltech/QtEmbedded-4.5.2-arm这个目录到rootfs/usr/local/Trolltech下面,也就是和PC上保持同一个路径; 虽然可以为其他路径,但是会要很繁琐的环境变量设置和其他设置,这里一切从简。 2,这样之后,我这进入到4.5.2-arm/example/下面,因为我在configure的时候并没有将example忽略掉,因此可以执行示例程序了: ./test -qws 可能会提醒你有些库找不到,那就到/usr/local/arm/3.4.1/arm-linux/lib/里面找相关的库拷贝到板子上的库目录下; 3,一般这样之后就没问题了,程序正常运行,自己写的hello world也正常运行了。但是,对于我这个at91rm9200的179MHz的cpu来说,qt还是很吃cpu,而且示例程序的内存也基本最少要吃 10M,很可怕,不知道是不是新的版本的是这样,这个以后要评估一下。 ***** 总结: 联系邮箱:GaussCheng@gmail.com 系统环境:ubuntu 9.04 编译环境:crosstool 0.43 安装后生成4.1版本的arm-linux-GCC 在配置之前,sudo apt-get install build-essential 来安装基本的开发环境 Qtx11(源码安装) 安装准备 建议直接下二进制程序安装。 1.安装依赖的库,你也可以不转,再安装出错的时候补上。 sudo apt-get install libxrender-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxt-dev libglib2.0-dev -libxtst-dev 这个是我刚装完系统后根据QTx11编译错误一个一个跟踪出来的,并不能保证是所有的安装依赖。 2.然后进入源代码顶层目录输入 ./configure -qt-sql-sqlite -plugin-sql-sqlite -nomake demos -nomake examples -silent 其中的编译参数可以自己根据./configure -help里面的提示筛选。 Qt-embedded 安装准备 1.如果你的交叉工具组都是以arm-linux-开头的则直接进行下面的步骤就行了,否则要有两个方法,一就是给你的工具组做软连接,然他们的前缀为 arm-linux-。推荐用这办法。二是打开Qt-embedded的源码目录,修改 mkspecs/qws/linux-arm-g++/qmake.conf,将里面的arm-linux-改成你交叉编译工具的前缀。 2. 打开qt-embedded-linux-opensourcesrc4.5.2/src/gui/embedded/qmouselinuxtp_qws.h 在里添加如下两个宏定义,其原因不知道,还望高人指教,这是在网上搜集资料是看到的,我试过不添加,则下面提供的配置选项生成的Qt-embedded库编译出来的程序不能使用触摸屏。如果有人使用tslib触摸屏驱动成功移植的,也请分享一下。 #define QT_QWS_IPAQ #define QT_QWS_IPAQ_RAW 3.进入源代码顶层目录输入: ./configure -embedded arm -little-endian -qt-sql-sqlite -plugin-sql-sqlite -no-scripttools -no-nis -no-largefile -no-libmng -no-accessibility -depths 16 -nomake docs -nomake demos -nomake examples -qt-zlib -feature-THREAD -feature-CONCURRENT -feature-SOUND -feature-EFFECTS -no-feature-CURSOR -silent 同理,上面的配置参数可以根据嵌入式应用的需要,进行裁剪,把不需要的东西都去掉,这对嵌入式应用来说是非常重要的,不仅可以节省空间也提高效率。 Qt Creator 安装 Qt Creator 是一款轻量级的IDE,我用它的目的就是为了方便QT程序的交叉编译。 1.如果Qtx11是从源码安装的,则不带Qt Creator,这时可以去官方网站下载二进制程序安装。安装好后,打开Qt Creator->Tools->options 然后在左边的导航栏展开Qt4,选Qt Versions。点击右上的加号图标,在version name里可以随便填,主要用来区分X86 和 arm 等Qt库的版本,在路径选到之前安装QTx11 库的路径,默认安装是在 /usr/local/Trolltech/QtEmbedded-4.5.2,然后点击rebuild,如果看到打对勾,则一切正常。同理,可以在添加上QtE-arm的库。 2.现在可以建立一个项目来玩玩,也可找到Qt-embedded的源码包,里面有一个触摸屏校正程序,在example/qws /mousecalibration,这个程序是嵌入式设备必须的,不然触摸屏是不能使用的。用Qt Creator打开其中的mousecalibration.pro文件。在Qt Creator左边,点击Projects。在Build Settings 勾上Release,Qt Version 选之前你为QTE-arm库起的名字,然后build就生成适合开发板运行的QT程序了。 配置环境变量,方便用别的IDE和命令行调用qmake moc 等程序 用编辑器打开~/.profile文件添加如下,保存注销就生效。 # set PATH so it includes Qt4.5.2 X11 bin if it exists if [ -d "/usr/local/Trolltech/Qt-4.5.2/bin" ] ; then PATH="/usr/local/Trolltech/Qt-4.5.2/binPATH" fi Qt文件系统的配置 准备 1.在根文件系统里建立/opt/qt/bin lib plugins 三个文件夹 2.把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib(即Qt-embedde库的安装目录)中的 libQtCore.so.4.5.2 libQtGui.so.4.5.2 libQtNetwork.so.4.5.2 放到开发板根文件系统的/opt/qt/lib里,并且做三个软链接分别为libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4 3.接着再把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/fonts/ 中带Vera和fixed的文件拷贝到根文件系统的/opt/qt/lib/fonts/ 4.再要把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/plugins/imageformats 里的文件拷贝到根文件系统的/opt/qt/plugins/imageformats 里。 5.到现在基本的Qt库就已经移植好了。在移植应用程序的时候,可以用如下命令查看需要那些共享库: arm-linux-readelf -a 程序名 | grep "Share",其中arm-linux-可该成你交叉编译工具的前缀 配置根文件系统 一般首先要做的就是将一个触摸屏校正程序放到文件系统的bin里(其实放那里都一样)。然后写一个脚本程序,让系统开机时调用,我的脚本程序initqt如下(别忘了给它添加可执行权限): #!/bin/sh export HOME=/root export QTDIR=/opt/qt #用来选择LinuxTP鼠标驱动 export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw" export QWS_DISPLAY="LinuxFB:/dev/fb0" #用来调整字体显示的比例,里面的数值可以自己换一下看看效果 export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0" export QWS_SIZE="320x240" export QT_PLUGIN_PATH=$QTDIR/plugins/ #字体目录 export QT_QWS_FONTDIR=$QTDIR/lib/fonts export PATH=$QTDIR/binPATH export LD_LIBRARY_PATH=$QTDIR/libQTDIR/plugins/imageformatsLD_LIBRARY_PATH #判断是否已经校正过屏幕了 if [ -s "etc/pointercal" ] ; then else /bin/mousecalibration fi 再配置一下/etc/profile文件,让一下环境变量登录就有效,以下是我的配置: # Ash profile # vim: syntax=sh # No core files by default #ulimit -S -c 0 > /dev/null 2>&1 USER="`id -un`" LOGNAME=$USER PS1='[/u@/h /W]# ' PATH=$PATH HOSTNAME=`/bin/hostname` export USER LOGNAME PS1 PATH export HOME=/root export QTDIR=/opt/qt export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw" export QWS_DISPLAY="LinuxFB:/dev/fb0" export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0" export QWS_SIZE="320x240" export QT_PLUGIN_PATH=$QTDIR/plugins/ export QT_QWS_FONTDIR=$QTDIR/lib/fonts export PATH=$QTDIR/binPATH export LD_LIBRARY_PATH=$QTDIR/libQTDIR/plugins/imageformatsLD_LIBRARY_PATH 最后在根文件系统的/etc/init.d/rcS 中的适当位置,加上/bin/initqt &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值