Qt tslib 交叉编译
交叉编译QT5后触摸屏TSLIB的问题
交叉编译QT5后触摸屏TSLIB的问题QT5.2,UBUNTU,在arm-linux-gcc 4.4.1(EABI)下编译。
TSLIB为1.4,目标板CPU为S3C2440编译过程:修改qtbase/mkspecs/linux-arm-gnueabi-g++下的qmake.conf 里的路径, 并添加:QT_QPA_DEFAULT_PLATFORM = linuxfbQMAKE_CFLAGS_RELEASE += -O2 -march=armv4tQMAKE_CXXFLAGS_RELEASE += -O2 -march=armv4t之后./configure -xplatform linux-arm-gnueabi-g++ -release -opensource -confirm-license -make libs --prefix $PWD/_install -no-c++11用生成的QMAKE在qtbase/src/plugins/genric/tls里面,qmake -o Makefile tslib.pro,make && make install编译结果运行QT应用时,提示:QTsLibMouseHandler "tslib" "/dev/input/event0"Couldnt load module pthresError configuring: No such file or directory触屏不能用,鼠标不能用。
提示This plugin does not support propagateSizeHints(),窗口无标题栏。
求救~~~~~附:环境变量设置export TSLIB_ROOT=/usr/localexport TSLIB_TSDEVICE=/dev/input/event0export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_CONSOLEDEVICE=noneexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib export QTDIR=/opt/QT5_2export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/libexportPATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin:$QTDIR/bin export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins #:/usr/local/lib/tsexport QT_QPA_PLATFORM=linuxfb:tty=/dev/tty0export QT_QPA_FONTDIR=$QTDIR/lib/fontsexport LD_PRELOAD=$QTDIR/lib/preloadable_libiconv.soexport QT_QPA_GENERIC_PLUGINS=tslib:/dev/event0。
qtvirtualkeyboard 交叉编译
qtvirtualkeyboard 交叉编译随着移动设备的普及和使用,虚拟键盘成为了一个重要的输入方式。
Qt作为一种跨评台的应用程序开发框架,自然也提供了虚拟键盘的组件 qtvirtualkeyboard。
在进行移动设备应用程序的开发时,可能会遇到需要在不同评台上进行交叉编译的情况。
本文将介绍如何进行qtvirtualkeyboard的交叉编译,以在不同评台上使用虚拟键盘。
1. 确定目标评台和环境在进行qtvirtualkeyboard的交叉编译之前,首先需要确定目标评台和编译环境。
不同的评台和环境可能需要采用不同的编译方式和工具链。
如果我们需要在Android评台上使用qtvirtualkeyboard,就需要使用Android NDK和对应的交叉编译工具链。
2. 配置交叉编译工具链一般来说,进行交叉编译需要配置对应的交叉编译工具链。
这个工具链需要包含能够针对目标评台进行编译和信息的工具和库。
我们可以根据目标评台和环境的要求,下载对应的交叉编译工具链,并进行配置。
在配置好工具链之后,我们就可以使用这个工具链来进行对应评台上的编译工作。
3. 下载和编译qtvirtualkeyboard源码一般来说,qtvirtualkeyboard的源码可以从Qt的冠方全球信息站上下载到。
在下载了源码之后,我们将其解压并进入源码目录。
我们可以根据目标评台和环境的要求,选择合适的编译选项和参数,并使用之前配置好的交叉编译工具链进行编译。
在编译过程中可能会遇到一些依赖库或者头文件的缺失,我们需要根据具体情况进行补充和配置。
4. 集成和部署虚拟键盘组件编译完成后,我们将得到对应评台上的qtvirtualkeyboard组件。
这个组件可以包括一些库文件、头文件和其他必要的资源。
我们需要将这些组件集成到我们的应用程序中,并进行相应的部署。
在集成和部署过程中,可能会遇到一些路径配置和信息依赖的问题,我们需要进行相应的调整和处理。
QT4.5.3 + Mplayer + tslib 移植到ARM S3C2440
现在市场上很多嵌入市播放器都是基于Linux 平台 + Mplayer + QT GUI 的组合,开发者可以很方便的开发出界面美观的播放器。
本文就以自己写的一个GUI 界面+Linux 平台 + QT4.5.3 作为内容分析具体的的移植过程:在移植之前你必须保证你的开发板子能征程工作,并且是基本与NFS 的文件系统引导。
关于怎么利用NFS 来启动ARM板子,请见其他博文:1.安装交叉编译环境:arm-linux-gcc-4.3.2.tar.bz2A: 下载地址:B: 将gcc解压到系统根目录tar xvjf arm-linux-gcc-4.3.2.tar.bz2 -C /-C / 表示解压在根目录下成功后将会安装在/usr/local/arm/4.3.2目录下C: 将gcc的所在路径加入用户的环境路径D: 修改用户目录下的 .bash_profile文件,将交叉编译工具的路径加到该文件中PATH=/usr/local/arm/4.3.2/bin:$PATH:$HOME/binE: 保存.bash_profile 后执行ldconfig 命令让其同步执行: which arm-linux-gcc 如果看到下面的提示表示你安装好了/usr/local/arm/4.3.2/bin/arm-linux-gcc或者执行: arm-linux-gcc -v 后能看到一下内容表示安装成功Using built-in specs. Target: arm-none-linux-gnueabiConfigured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap--disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++--enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3..........................................gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)2.安装QT-x11和QT-EmbeddedA :从Nokia的官方网站上下载 QT-Creator2.0 集成开发环境和QT-Embedded包:a: qt-sdk-linux-x86-opensource-2009.05.binb: qt-embedded-linux-opensource-src-4.5.3.tar.gzB: 安装QT-x11进入到你下载的目录在控制台下输入: ./qt-sdk-linux-x86-opensource-2009.05.bin 回车后,就执行安装了,后面的安装和Windows安装一样只要用鼠标点击下一步就可以了。
Qt4.5.1触摸屏+tslib1.4移植全记录
Qt4.5.1触摸屏+tslib1.4移植全记录Qt4.5.1触摸屏+sqlite3 移植全记录主机系统:Debian 5.0主机编译器:gcc/g++为4.1.3交叉编译器:arm-linux-gcc/g++3.4.5-glibc-2.3.6软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gzqt-x11-opensource-src-4.5.1.tar.gztslib-1.4.tar.gz目标板:博创UP-TECH S24101. 安装X11的相关库文件和开发包在编译时会生成一些在主机上运行的工具,要用到X11的一些头文件、库,所以需要安装X11开发包。
#sudo apt-get -y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-dev libqt3-mt-dev#sudo mkdir -p /usr/X11R6/include#sudo cp -rf /usr/include/X11 /usr/X11R6/include(参考韦东山《嵌入式Linux应用开发完全手册》)2.安装交叉编译器arm-linux-gcc-3.4.5(1) 新建安装目录:#mkdir /usr/local/arm(2) 解压arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2把arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2复制在目录/usr/local/arm下,在终端中进行如下操作:#cd /usr/local/arm#tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2等待解压完成。
(3) 导入环境变量export PATH=$PATH:/usr/local/arm/3.4.5/bin或者:编辑一个导入环境变量的脚本(方便以后使用):#vi ArmEnv1 #!/bin/sh2 export PATH=$PATH:/usr/local/arm/3.4.5/bin#chmod +x ArmEnv //增加可执行权限#arm-linux-gcc -v这样就把交叉编译器的地址变量设置好了,但这样设置路径变量的方法只在此终端中生效,对其他的终端无效,若要设置对所有用户所有终端都有效的路径变量,在/etc/profile 中最后一行添加“export PATH=/usr/local/arm/3.4.5/bin:$PATH”(不推荐这种方式)。
[转]qt-4.7交叉编译-mikit的专栏-CSDN博客
[转]qt-4.7交叉编译-mikit的专栏-CSDN博客[转]qt-4.7交叉编译收藏一:环境介绍虚拟机:vmware 7.0Linux 环境:ubuntu 9.04交叉编译环境:arm-linux-g++ 3.4.5硬件平台:TQ2440二:移植步骤安装交叉编译环境由于这里使用的是QT2440管盘中提供的交叉编译工具链EABI-4.3.3_EmbedSky_20100610.tar.bz2,放在/opt/目录下解压主要是在解压后可以看到其中含有两个版本,由于qt4.7.0的编译必须使用3.4.5版本所以在设置交叉编译的路径的时候使用的是在/etc/profile中加入exportPATH=/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH安装tslib1.41. 下载tslib1.4,解压2. 进入解压的目录运行执行./autogen.sh3. 执行./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ,经过一段时间的编译4. 执行make install5. 修改/opt/tslib/etc/ts.conf,把第二行的#号去掉(这样做的主要目的是为了在移植到板子上的时候,可以制定输入模块)6. 在/etc/profile中加入export PATH=/opt/tslib:$PATHPS:经过我的测试,我无法用以上的方法编译tslib1.4,我用的是另外一种方法:1、 ./autogen.sh #用于生成configure脚本2、 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache#产生一个cache文件arm-linux.cache,欺骗configure,3、 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/tslib --cache-file=arm-linux.cache4、 make5、 make install交叉成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹编译qt4.7.0-arm1. 下载qt-everwhere-opensource-4.7.0,并解压最好重命名qt-everwhere-opensource-4.7.0-qte2. 开始进行配置选项./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-multimedia -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license "$@"3. 开始进行交叉编译gmake 此过程要经历很长的一段时间4. 在交叉编译成功后运行gmake install安装,这里会默认安装到/usr/local/Trolltech/QtEmbedded-4.7.0-arm5. 这个时候qte的编译就成功了制作根文件系统(移植到开发板)1.移植tslib,将ubuntu中的/opt/tslib 拷贝到根文件系统中的/opt/下面2.移植qte4.7.0将/usr/local/Trolltech/QtEmbedded-4.7.0-arm下面的lib文件夹拷贝到根文件中的相同目录下(必需得先创建相应的目录)注:此时可以根据需要裁剪lib 中的内容去掉不用的.so文件3. 增加新的显示中文的字体wenquanyi 放到上面的/lib/fonts目录下。
安装QT交叉编译 成功 + 测试
第一步:解压文件并命名
# tar -jxvf qt-x11-opensource-src-4.5.0.tar.bz2
# tar -jxvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2
# mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86 //构建用于pc上模拟开发的库,编译x86版QT应用程序.
第二步:配置及编译安装
安装qt-x11-opensource-src-4.5.0
进入 qt-x11-opensource-src-4.5.0目录分别执行:
# ./configure -qvfb //这记得把qvfb 配置好,即可直接安装qvfb工具.
QMAKE_INCDIR and QMAKE_LIBDIR in
/user/qt-embedded-linux-opensource-src-4.5.0-arm/mkspecs/qws/linux-arm-g++.
然后把arm/mkspecs/qws/linux-arm-g++/qmake.conf 里的linux-arm-g++ 改成交叉编译器 arm-9tdmi-linux-gnu 问题解决。
对于触摸屏幕,我使用的是tslib1.4.tar.gz
交叉编译tslib过程如下:
arm-9tdmi-linux-gnu交叉编译变量已在 /etc/bashc 里添加.
#tar -zxvf tslib1.4.tar.gz
#./autogen.sh //生成configure
触摸屏校正总结
移植所遇到的问题分析与总结(elephant半原创)一:移植环境1:主机环境:Ret Hat Enterprise 52: 交叉工具链:开发平台:友善之臂mini2440+统宝寸屏4:所需的软件资源:(QT的移植是参考网上找到一篇较好的移植手册,但是此手册的作者不知道是无心之失还是咋的,给的资料有所保留。
不过思路比较清晰以及解析的比较详细,还是非常值得参考的)参照的文章链接地址为:二:交叉编译在移植好触摸屏的驱动后(在移植内核的时候完成),一般都要移植一个tslib来配合,在用户层对触摸屏的数据进行滤波和矫正,同时也可以给应用程序一个统一的接口,很多GUI都支持tslib的接口。
我移植到开发板的QT版本是QT4,所以用进行触摸屏校正,因为QT4只是支持(目前最新版),QT2支持的是版本,所以在移植过程中先要看清楚自己移植的是什么版本。
简单描述tslib校正触摸屏原理:Tslib是触摸屏驱动和应用层之间的适配层,它从触摸屏驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕坐标。
通过tslib/src/文件可以看出,在tslib中为应用层提供了2个主要的接口ts_open(),ts_close();ts_read()和ts_read_raw(),其中ts_read()为正常情况下的接口,ts_read_raw()为校准情况下使用的接口。
从tslib默认的文件中可以看出包括如下基本插件:(强烈建议通读这个配置文件并理解这个文件所写的内容)pthres 为Tslib 提供的触摸屏灵敏度门槛插件;variance 为Tslib提供的触摸屏滤波算法插件;dejitter 为Tslib 提供的触摸屏去噪算法插件;linear为Tslib 提供的触摸屏坐标变换插件。
tslib 从触摸屏驱动采样到的设备坐标进行处理再提供给应用端的过程大体如下: raw device --> variance --> dejitter --> linear --> applicationmodule module module module再来看看ts_calibrate主要做了哪些事情,校准情况下,tslib对驱动采样到的数据进行处理的一般过程如下:1。
Fedora下Qt环境搭建
Fedora下Qt环境搭建基于VMware7.1.4上的Fedora 14操作系统tslib-1.4.tar.gzarm-linux-gcc-4.3.2.tar.gzqt-everywhere-opensource-src-4.7.4.tar.gz二.安装交叉编译环境:把arm-linux-gcc-4.3.2.tar.gz放到/tmp 目录下# tar xzvf arm-linux-gcc-4.3.2.tar.gz -C /# vim /root/.bashrc编辑/root/.bashrc文件,在最后一行添加:export PATH=$PATH:/usr/local/arm/4.3.2/bin保存退出后回到终端,然后使得刚才添加的环境变量生效:# source /root/.bashrc# arm-linux-gcc -v 可以看到版本信息五.安装Qt for PC(X11)1.1、建立目录Qt目录mkdir /opt/FriendlyARM/mini2440/Qt1.2、解压qt-everywhere-opensource-src-4.7.4.tar.gz 并更改目录名tar xvzf qt-everywhere-opensource-src-4.7.4.tar.gz -C /opt/FriendlyARM/mini2440/Qtcd /opt/FriendlyARM/mini2440/Qtmv qt-everywhere-opensource-src-4.7.4 qt-for-x111.3、开始配置文件:# cd qt-for-x11#. /configure接着提示要使用商业版还是开源版:输入o后回车选择开源版;然后提示可以使用开源协议:输入yes后回车即可。
1.4、#gmake //编译,这个过程要等几个小时的时间1.5、#gmake install //开始安装基于PC上的Qt1.6、安装目录在新生成的目录下面:/usr/local/Trolltech/Qt-4.7.4 1.7、使用时需添加#export PATH=”/usr/local/Trolltech/Qt-4.7.1/bin:$PATH”然后输入#qmake –v (如能输出版本号,则说明安装成功)1.8、编译qvfb(Virtual Framebuffer) 为QT-embedded X86 作准备1.8.1、# cd /opt/FriendlyARM/mini2440/Qt/qt-for-x11/tools/qvfb1.8.2、# gmake (编译后qvfb存在/opt/FriendlyARM/mini2440/Qt /qt-for-x11/bin目录中)1.8.3、# cd /opt/FriendlyARM/mini2440/Qt /qt-for-x11/bin/1.8.4、# ./qvfb (进行检验,如能输出一个虚拟窗口,则说明安装正常)1.8.4、将qvfb拷贝到QTDIR/bin路径下:cp qvfb /usr/local/Trolltech/Qt-4.7.4/bin六.安装QT for Embedded for X86 嵌入式X861.1、解压qt-everywhere-opensource-src-4.7.4.tar.gz 并更改目录名tar xvzf qt-everywhere-opensource-src-4.7.4.tar.gz -C /opt/FriendlyARM/mini2440/Qtcd /opt/FriendlyARM/mini2440/Qtmv qt-everywhere-opensource-src-4.7.4 qt-for-x861.2、进入对应文件夹并配置#cd /opt/FriendlyARM/mini2440/Qt/qt-for-x86#./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb //配置接着提示要使用商业版还是开源版:输入o后回车选择开源版;然后提示可以使用开源协议:输入yes后回车即可。
qt程序移植到arm开发板
qt程序移植到arm开发板1、安装交叉编译⼯具链arm-linux-gcc●复制arm-linux-gcc-4.4.3.tar.gz到/home/tools⽂件夹⾥●解压命令tar xvzf arm-linux-gcc-4.4.3.tar.gz -C / (解压⽂件到根⽬录下)注意以上命令必须要有-C⽽且是⼤写,后边有个空格也要注意。
注意查看解压的路径,将解压⽣成的⽂件移动到usr/local/arm⽬录下●vi /etc/profile●在⽂件的末尾加上PATH=/usr/local/arm/4.4.3/bin:$PATH●输⼊命令:source /etc/profile(使刚修改的⽂件⽴即⽣效)●查看arm-linux-gcc版本arm-linux-gcc -v注意:此⽅法只对当前登录⽤户有效,更换⽤户后修改当前登录⽤户/etc/profile即可2、tslib编译与安装tslib是电阻式触摸屏⽤于校准的⼀个软件库,是⼀个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应⽤提供了⼀个统⼀的接⼝。
因此这⾥先编译安装tslib,这样在后⾯编译Qt的时候才能打包编译进去。
●需要检查⼀下软件是否安装sudo apt-get install automakesudo apt-get install autogensudo apt-get install autoconf●确定以上⼯具都已经安装后,复制tslib-1.4.tar到/home/tools⽂件夹⾥tar -zxvf tslib-1.4.tar.gzcd tslib./autogen.sh./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslibmakemake install-prefix=/usr/local/tslib是指定安装路径,其实包括下⽂的安装配置,路径都可以不指定,默认就是安装到/usr/local/⽬录下若出现错误:configure.ac:25: error: possibly undefined macro: AC_DISABLE_STAT ICIf this token and others are legitimate, please use m4_pattern_al low.See the Autoconf documentation.configure.ac:26: error: possibly undefined macro: AC_ENABLE_SHARE Dconfigure.ac:27: error: possibly undefined macro: AC_LIBTOOL_DLOP ENconfigure.ac:28: error: possibly undefined macro: AC_PROG_LIBTOOL autoreconf: /usr/bin/autoconf failed with exit status: 1解决⽅法:apt-get install libtool3、Qt的交叉编译与安装和PC平台下的编译类似,通过运⾏./configure进⾏配置⽣成makefile⽂件,然后编译安装,只是因为是针对嵌⼊式平台需要进⾏⼀些针对性配置,这⾥⽣成⼀个⾃动配置⽂件,可以通过修改⽂件来⽅便的更改配置。
qt-embedded交叉编译步骤
Qt-embedded-free-3.3.8在qt2410上的移植步骤准备好需要的安装包:arm-linux-cross-2.95.3.tar.bz2qt-embedded-free-3.3.8.tar.bz2qt-x11-free-3.3.8.tar.bz2qtopia-free-1.7.0.tar.gz在home下建个自己的目录我的是renyc,然后分别建立x86和arm平台开发目录,命令如下:[root@localhost root]# cd /home/renyc[root@localhost root]# mkdir qtarm[root@localhost root]# mkdir qtx86然后把上述3个安装包分别拷到qtarm和qtx86目录下。
[root@localhost root]#cp qt-embedded-free-3.3.8.tar.bz2 /qtx86[root@localhost root]#cp qt-x11-free-3.3.8.tar.bz2 /qtx86[root@localhost root]#cp qtopia-free-1.7.0.tar.gz /qtx86[root@localhost root]#cp qt-embedded-free-3.3.8.tar.bz2 /qtarm[root@localhost root]#cp qt-x11-free-3.3.8.tar.bz2 /qtarm[root@localhost root]#cp qtopia-free-1.7.0.tar.gz /qtarm1、PC机搭建开发环境第一步:首先安装交叉编译器把arm-linux-cross-2.95.3.tar.bz2拷到/home/renyc目录下,解压到usr/local/arm/下,这是arm-linux-gcc安装的默认路径,不按这个路径安装可能会有问题,然后执行如下命令:[root@localhost root]#tar xfvz arm-linux-cross-2.95.3.tar.bz2 –C /注意:-C后面有个空格,并且C是大写的,他是”Change”的第一个字母。
tslib-1.4交叉编译详细笔记
tslib-1.4交叉编译详细笔记tslib-1.4交叉编译详细笔记[嵌入式]发布时间:2009-09-17 01:48:50tslib-1.4交叉编译详细笔记注:在此之前,请确保你的触摸屏驱动已经移植完成。
1、环境介绍(1)、主机:虚拟机下fedora9(2)、硬件平台:mini2440(3)、交叉编译器:arm-linux-gcc-4.3.2(4)、触摸屏适配层源码:tslib-1.4.tar.gz我的根文件系统在在主机上的路径是/opt/rootfs ,tslib-1.4.tar.gz 解压到/opt/Qt目录下,解压后多了tslib目录。
2、交叉编译tslib-1.4编译和安装后在主机的/usr/local/tslib目录下看到编译好的程序和库。
注:如果你的触摸屏驱动支持ioctl操作,在./configure时不用“--enable-inputapi=no”,不支持就要添上,如果不添加无法运行程序,会有“ts_open:Inappropriate ioctol for device“、“ts_open: No such file or directory”这样的错误。
2、配置并加入到根文件系统(1)、修改tslib/etc目录下的ts.conf文件,将module_raw input 前面的注释去掉。
(2)、cp –rfd /usr/local/tslib/* /opt/rootfs/usr/local(3)、在根文件系统的etc/profile文件中加入运行tslib的环境变量我将配置好的根文件系统下载到开发板后,曾多次出现“ts_open: No such file or directory”、“./ts_test: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directory”等错误,究其原因都是配置不仔细造成的,可以在终端使用env来查看tslib的环境变量的配置情况,然后配置好环境变量等。
交叉编译qt程序
交叉编译qt程序摘要:1.交叉编译的概念与意义2.Qt简介与交叉编译的必要性3.交叉编译Qt程序的工具选择4.交叉编译Qt程序的步骤与技巧5.编译后的程序运行与调试6.总结与展望正文:一、交叉编译的概念与意义交叉编译是一种软件开发技术,指的是在一种计算机硬件和操作系统环境下,为另一种计算机硬件和操作系统环境编写和编译软件。
这种技术在嵌入式系统、物联网等领域有着广泛的应用。
交叉编译Qt程序,就是将Qt应用程序在一种硬件平台和操作系统上进行开发和编译,使其能够在另一种硬件平台和操作系统上运行。
二、Qt简介与交叉编译的必要性Qt是一款功能强大的跨平台C++应用程序框架,可以用于开发图形界面、网络通信、数据库操作等各种类型的应用程序。
由于Qt本身具有跨平台特性,因此,在不同的硬件平台和操作系统上进行交叉编译是非常必要的。
这可以大大简化开发过程,提高开发效率,同时确保应用程序在不同平台上的兼容性和稳定性。
三、交叉编译Qt程序的工具选择在进行交叉编译Qt程序时,选择合适的工具非常重要。
目前市面上有很多交叉编译工具链,如GCC、Clang等。
对于Qt程序,推荐使用以下工具:1.QEMU:一款功能强大的硬件模拟器,可以模拟多种硬件平台,配合交叉编译工具链,实现对Qt程序的编译和调试。
2.NDK:Nokia Developer Tools,一款由诺基亚推出的针对Qt开发的交叉编译工具集,支持多种操作系统和硬件平台。
四、交叉编译Qt程序的步骤与技巧1.搭建交叉编译环境:根据目标硬件平台和操作系统,配置相应的交叉编译工具链、Qt库和其他依赖库。
2.编写Qt程序:使用Qt Creator等IDE,编写适用于目标平台的Qt应用程序。
3.编译Qt程序:使用交叉编译工具链,将Qt程序编译为目标硬件平台的机器码。
4.调试与优化:在模拟器或实际硬件上运行编译后的程序,进行功能测试、性能优化等。
五、编译后的程序运行与调试编译后的Qt程序可以在目标硬件平台上的模拟器或实际设备上运行。
qt交叉编译arm linux程序
qt交叉编译arm linux程序-概述说明以及解释1.引言1.1 概述引言部分,概述部分内容:QT交叉编译是指在一台主机上使用QT开发环境,将程序编译为在不同操作系统或硬件平台上运行的可执行文件。
而ARM Linux是一种基于ARM架构的开源操作系统,在嵌入式系统领域广泛应用。
本篇文章将介绍如何使用QT开发环境进行交叉编译,将程序编译成可以在ARM Linux 平台上运行的程序。
本文将从整体上介绍QT交叉编译的概念和原理,以及ARM Linux 平台的基本知识。
然后,我们将详细介绍如何搭建QT交叉编译环境,并给出一步一步的操作步骤。
最后,我们将总结整篇文章的内容,并展望QT交叉编译ARM Linux程序的意义和应用前景。
通过本文的学习,读者将能够了解QT交叉编译的基本原理和步骤,具备搭建QT交叉编译环境的能力,并能够将编写的程序成功地交叉编译为可以在ARM Linux平台上运行的程序。
这对于需要在嵌入式系统中进行开发的工程师和开发者来说,具有重要的实际意义。
然而,本文还存在一些不足之处,例如在具体步骤的讲解中可能存在一些细节问题,还有一些更高级的主题未能深入探讨。
因此,我们对本文的改进方向也进行了一定的展望,希望能够进一步完善和拓展相关内容。
总之,通过本文的学习,读者将能够掌握QT交叉编译ARM Linux 程序的基本知识和技能,为嵌入式系统的开发和应用提供了一定的参考和指导。
希望本文对读者有所帮助,并能够引起更多对此领域的关注和研究。
1.2 文章结构文章结构部分的内容是对整篇文章的组织和框架进行介绍。
通过明确文章的结构,可以帮助读者更好地理解文章内容和主要观点的呈现方式。
在本文中,文章结构包括以下几个方面:1. 引言:介绍本篇文章的背景和意义,以及总结文章的主要内容。
2. 正文:主体部分,详细介绍QT交叉编译ARM Linux程序的相关知识和步骤。
- 2.1 QT交叉编译概述:介绍QT交叉编译的基本概念、原理和应用领域。
Qt5.8与触摸Tslib
Qt5.8与触摸Tslib本小节主要介绍Tslib-1.4库的编译与移植,下节主要Qt5.8的移植,以及Qt5.8与Tslib-1.4的对接,实现在Qt上的触摸功能;一、开发环境以及工具PC系统:Linux version 4.10.0-38-generic (buildd@lgw01-amd64-059) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017交叉编译器:arm-xilinx-linux-gnueabi-gcc硬件平台:赛灵思(XILINX)ZYNQ-7000开发板二、前言首先介绍下交叉编译器的使用方法,gcc(编译c语言——.c程序)、g++编译器(编译c++——.cpp程序)在PC Linux系统上一般是装好的,用他们编译好的程序只能在X86平台(32位系统,如Windows、Linux)、或者X64平台(64位PC系统)上运行,PC的CPU一般是Intel 架构或者AMD架构;而Linux的嵌入式平台,CPU一般是ARM架构;如果需要在嵌入式平台上运行程序,那么就需要用该ARM平台所对应的交叉编译器(arm-linux-gcc或者arm-linux-g++)编译程序源码,然后拷贝到ARM开发板上运行。
如果该应用程序还需要依赖某些库文件(比如动态库.So),那么就需要把该库的绝对路径添加到环境变量$LD_LIBRARY_PATH中,程序运行时就会链接到该.So库正常运行了。
以上纯属个人在工作中的理解,有错误的地方请大家指正。
工具链下载:https:///download/psy6653/10493762?utm_s ource=bbsseo交叉编译器安装、使用的演示:原理都一样,我就随便下载一个交叉编译重新安装;cross_compilers.tar.gz(交叉编译器源码包,一般是arm-linux-xxx 的压缩包,我的是自己压缩的,再解压演示的)解压该源码包(我是在/opt目录下解压的)tar -zxvf cross_compilers.tar.gz然后进入解压目录的bin目录下,我们可以看到该交叉编译器的许多工具如何使用该交叉编译器呢?我习惯vim /etc/profile文件,在$PATH路径下增加该交叉编译器bin路径PATH=PATH=$PATH:/mnt/workspace/qt/cross_compilers/bi n/让刚所修改的环境变量立即生效source /etc/profile让后我们在终端terminal中输入arm后,再按Tab键(自动补齐功能),我们就可以看到以arm开头的一些交叉编译器工具的文件,意思是环境变量设置成功,交叉编译器已经成功安装,并能使用。
一个顽疾qt不能包含tslib的头和库文件联合编译的解决方法
 一个顽疾——QT不能包含tslib的头和库文件联合编译的解决方法先介绍一下我的交叉编译环境,OS是Fedora9,交叉编译器是arm-linux-gcc-4.3.3(arm-2009q1),其它,tslib-1.4、QT4.7.2,硬件平台Omap3530。
以前我的交叉编译器使用的是arm-linux-gcc-4.3.2,联合编译QT4.7.2和tslib-1.4没有任何问题。
现在,我换成了arm-linux-gcc-4.3.3,再次联合编译时,就出现问题了。
过程如下:1、安装tslib-1.4 。
2、下载QT,我当时下载的版本是qt-everywhere-opensource-src-4.7.2.tar.gz 。
3、执行以下命令执行QT4.7.2编译前的配置:# tar -zxvfqt-everywhere-opensource-src-4.7.2.tar.gz# cd qt-everywhere-opensource-src-4.7.2# echo yes | ./configure -prefix /opt/Qt4.7-opensource -embedded arm -no-qt3support -xplatformqws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng-qt-mouse-pc -no-mouse-linuxtp -qt-mouse-tslib -I/usr/local/tslib/include -L /usr/local/tslib/lib-no-neon上面的主要参数含义说明如下:-prefix /opt/Qt4.7 :表示Qt4.7最终的安装路径是/opt/Qt4.7。
注意,将QT部署到目标板上时,也需要把Qt4.7放在这个路径上;-embedded arm :表示将编译针对arm平台的embedded版本;-xplatform qws/linux-arm-g++ :表示使用arm-linux交叉编译器进行编译;-qt-mouse-tslib :表示将使用tslib来驱动触摸屏-I /usr/local/tslib/include-L /usr/local/tslib/lib :包含tslib的头文件和库文件这时,问题出现了。
QT程序的交叉编译方法和过程
[root@UP-TECH up_wsn]# tftp -r testqt -g 192.168.1.12
[root@UP-TECH up_wsn]# chmod +x testqt
备注192.168.1.12 IP地址为运行TFTP32软件的WINDOWSXP IP地址。
二、QT/E程序的运行
1、进入ARM-LINUX系统
使用串口线连接PC机和ARM设备的串口,打开超级终端软件,波特率115200,无硬件流控制。
2、终止ARM默认演示程序
使用键盘的CTRL+C终止演示程序并杀死ARM后台ev_server服务程序。。
[root@UP-TECH root]# ps
…….省略
一、QT/E程序的编译
1、工程文件的拷贝
将testqt目录通过SMB共享移动至LINUX系统共享目录/home/sprife
2、QT/E开发包的安装
将Qt-embedded-4.6.2_install.tar.bz2压缩包拷贝到LINUX系统/home/sprife目录,
创建目录
[root@localhost ~]# cd /usr/local/
4、设置环境变量并运行
在up_wsn目录下执行如下命令:
cd /mnt/yaffs/up_wsn/
export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib
export TSLIB_TSDEVICE=/dev/event1
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
交叉编译qt程序
交叉编译qt程序摘要:1.交叉编译的概念2.Qt 程序的特点3.交叉编译Qt 程序的步骤4.交叉编译Qt 程序的优点和应用场景正文:一、交叉编译的概念交叉编译是指在特定的平台上编译出能在其他平台上运行的程序。
例如,在Windows 平台上编译出能在Linux 平台上运行的程序。
这种编译方式可以帮助开发者更容易地实现跨平台应用的开发,降低开发难度和成本。
二、Qt 程序的特点Qt 是一种跨平台的C++应用程序框架,可以用于开发图形用户界面(GUI) 程序。
Qt 具有以下特点:1.跨平台:Qt 支持多种操作系统,包括Windows、Linux、macOS 等。
2.面向对象:Qt 采用面向对象的编程范式,易于学习和掌握。
3.强大的GUI 功能:Qt 提供了丰富的GUI 组件,可以满足各种应用的需求。
4.可扩展性:Qt 具有良好的可扩展性,可以根据项目需求进行定制。
三、交叉编译Qt 程序的步骤以在Windows 平台上编译出能在Linux 平台上运行的Qt 程序为例,交叉编译的步骤如下:1.安装交叉编译工具链:首先需要在Windows 平台上安装一套适用于Linux 平台的交叉编译工具链,例如GCC、Clang 等。
2.配置环境变量:将交叉编译工具链的安装路径添加到环境变量中,以便在编译Qt 程序时能够找到编译器。
3.创建Qt 项目:使用Qt Creator 或其他IDE 创建一个Qt 项目,并设置项目的编译目标平台为Linux。
4.编译Qt 程序:在Windows 平台上使用交叉编译工具链编译Qt 程序。
编译完成后,会生成一个可在Linux 平台上运行的可执行文件。
四、交叉编译Qt 程序的优点和应用场景1.优点:(1)降低开发成本:交叉编译可以减少为每个平台分别进行开发的工作量,提高开发效率。
(2)易于维护:由于代码和编译环境保持一致,交叉编译后的程序更容易进行维护和更新。
2.应用场景:(1)跨平台应用开发:当需要开发一个可以在多种操作系统上运行的应用时,交叉编译是一个很好的选择。
交叉编译qt程序
交叉编译Qt程序1. 什么是交叉编译?交叉编译是指在一台计算机上生成在另一种体系结构的计算机上运行的可执行文件。
在本文中,我们将讨论如何在一台计算机上交叉编译Qt程序,以在另一种体系结构的计算机上运行。
2. 为什么要交叉编译Qt程序?通常情况下,我们在开发Qt程序时会在本地计算机上进行编译和测试。
但是,有时我们需要将程序部署到另一种体系结构的计算机上,比如嵌入式设备、移动设备或者远程服务器。
这时,我们就需要使用交叉编译来生成适用于目标体系结构的可执行文件。
交叉编译Qt程序的好处有: - 提高编译速度:由于交叉编译是在本地计算机上进行,可以充分利用计算机的资源,从而加快编译速度。
- 适用于嵌入式设备:嵌入式设备通常资源有限,无法直接在设备上编译Qt程序。
通过交叉编译,可以将程序编译为能够在嵌入式设备上运行的可执行文件。
- 便于集成和部署:交叉编译生成的可执行文件可以直接部署到目标设备上,减少了在目标设备上进行编译的复杂性。
3. 准备工作在进行交叉编译之前,我们需要进行一些准备工作。
3.1 安装交叉编译工具链首先,我们需要安装目标体系结构的交叉编译工具链。
交叉编译工具链是一组编译器、链接器和其他工具,用于将代码编译为目标体系结构的可执行文件。
具体的安装方法可以参考交叉编译工具链的文档或者官方网站。
常见的交叉编译工具链有: - GCC交叉编译工具链:用于编译C/C++程序。
- Binutils交叉编译工具链:用于链接和调试可执行文件。
- Qt交叉编译工具链:用于编译Qt程序。
3.2 下载和配置Qt源码接下来,我们需要下载和配置Qt源码。
Qt是一个跨平台的应用程序开发框架,支持多种体系结构和操作系统。
你可以从Qt官方网站下载最新的Qt源码包。
下载完毕后,解压源码包到本地目录。
在解压后的源码目录中,运行以下命令进行配置:./configure -xplatform <platform> -device <device> -sysroot <sysroot> -prefix <prefix>其中,<platform>是目标体系结构的平台标识,比如linux-arm-gnueabi-g++;<device>是目标设备标识,比如generic-linux-g++;<sysroot>是目标设备的根文件系统路径;<prefix>是Qt安装路径。