首页 > 编程语言 >09_QT系统移植之交叉编译QT源码和触摸源码

09_QT系统移植之交叉编译QT源码和触摸源码

时间:2024-04-17 17:11:07浏览次数:25  
标签:none QT gnueabi 09 QMAKE 源码 linux arm

QT系统移植之交叉编译QT源码和触摸源码

交叉编译QT源码

一.源码下载

​ QT官网下载:

http://download.qt.io/new_archive/qt/5.7/5.7.1/

二.编译环境

开发环境:Ubuntu16

编译器:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

三.编译触摸

触摸源码在这个视频目录下,我们解压触摸源码tslib-1.4.tar.gz,

安装依赖库:

apt-get install autoconf automake libtool pkg-config m4  

然后执行以下命令:

cd tslib
 ./autogen.sh
 ./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-none-linux-gnueabi --prefix=/opt/tslib1.4 ac_cv_func_malloc_0_nonnull=yes
 make
 make install 

然后打开 /opt/tslib1.4/etc/ts.conf 修改第二行如下图所示:

img

四.编译QT源码

使用“tar -vxf qt-everywhere-opensource-src-5.7.0”命令解压 QtE5.7 源码,并进入解压生成的“qt-everywhere-opensource-src-5.7.0”目录。

在qt-everywhere-opensource-src-5.7.0目录下,打开qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 文件,并修改为如下所示内容 ,因为一会我们要用到这个里面的内容,所以我们要先修改一下这里面的编译器。修改完成如下:

#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++   
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip

load(qt_config)

然后我们需要用configure生成下Makefile,因为命令比较长,我们一把都是创建一个脚本,然后执行我们这个脚本生成Makefile。

使用“vi autoconfigure.sh”命令,新建“autoconfigure.sh”脚本。脚本内容如下所示。

#!/bin/sh
./configure \
-v \
-prefix /opt/qt5.7.0 \
-release \
-opensource \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-iconv \
-nomake examples \
-nomake tools \
-skip qtvirtualkeyboard \
-I/opt/tslib1.4/include \
-L/opt/tslib1.4/lib
exit

使用"chmod 777 autoconfigure.sh"修改一下权限

使用"./autoconfigure.sh"运行一下

接着使用编译命令“make”,之后使用安装命令“make install”。完成后,可以在“/opt”目录下可以查看到生成的“qt5.7.0”文件,如下图所示。

标签:none,QT,gnueabi,09,QMAKE,源码,linux,arm
From: https://www.cnblogs.com/mzx233/p/18141251

相关文章

  • 圈子社交系统--在线了解前后端,APP小程序H5,三端源码交付-多重玩法,新奇有趣。
    圈子论坛社区系统,含完整的后台PHP系统。功能:小程序授权登陆,H5和APP,手机号登陆,发帖,建圈子、发活动。圈主可置顶推荐帖子,关注、点赞、评论、交流等。可作为圈子贴吧等自媒体。一款全开源支持免费商用的圈子社区论坛系统;系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理......
  • Python+Qt在苹果电脑生成app制作dmg
    生成setup.py文件,然后修改里面配置内容,如下所示:1#!python32#-*-coding:utf-8-*-3"""4Thisisasetup.pyscriptgeneratedbypy2applet56Usage:7pythonsetup.pypy2app8"""910fromsetuptoolsimportsetup,find_p......
  • Qt实现无边框窗口(二)
    本例使用纯Qt实现了无边框的窗口,包含了窗口外围的阴影和调整窗口大小的功能,以及最小化、最大化和关闭按钮的功能。本程序在VS2017、Qt5.9下测试通过。期间为了正确响应鼠标消息调试了1~2天,因为在推拽调整窗口大小的时候总是会出漏洞,不过最终还是解决了这些问题。运行效果如下图:......
  • 《线性代数的本质》笔记(09)
    09-基变换基向量不同,则相同坐标的向量实际上并不是同一个。将新的基向量看作是线性变换,则其列应该是原本的基向量现在的位置。将一个新坐标系下的向量a(x,y)转换到我们的坐标系中:用这个矩阵乘以这个向量。原因:用两组基向量分别表示向量在两个坐标系下的位置,则结果应该是相同的。所......
  • pyqt5报错记录:ERROR: Failed building wheel for PyQt5-sip
    问题:pipinstallpyqt5Collectingpyqt5UsingcachedPyQt5-5.15.10-cp37-abi3-win_amd64.whl.metadata(2.2kB)CollectingPyQt5-sip<13,>=12.13(frompyqt5)UsingcachedPyQt5_sip-12.13.0.tar.gz(123kB)Installingbuilddependencies...doneGettingr......
  • MyBatis-09-FactoryBean的问题
    ListableBeanFactory#getBeanNamesForType(Class<?>)这个方法的逻辑在对FactoryBean进行判断时,会使用FactoryBean的生成的对象的类型进行判断BD的属性数据AttributeAccessor.getAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE)反射创建对象并调用FactoryBean#getObjectT......
  • Qt实现遮罩效果并可以拖动伸缩
    qml实现遮罩实现遮罩容易,但是如果可以任意拖动就需要动动脑子了,在经过大神的提示后,根据截图的界面思考,可以由五个矩形来实现(一个中心矩形和四个锚定在四周的矩形,它们一起充满程序窗口区域)QGraphicsView实现遮罩由于没有qml锚定布局,模拟锚定费时间,需要换一种思路,还是截图的灵感,......
  • winform车牌识别源码(纯算法)
    车牌识别,本是图像领域中,非常成熟的一个应用,也是目前无处不在的停车场自动收费设备的技术基础。前言本文将使用c#语言,winform框架开发一个车牌识别系统M=,不借助任何框架,纯算法。效果  使用工具VisualStudio2019思路打开要识别的车牌对车牌进行去雾操作接着进......
  • dbt-checkpoint 源码结构简单说明
    前边说过dbt-checkpoint是基于dbt的元数据解析,然后集合规则进行check,属于一个pre-commit插件,以下简单说明下内部实现配置核心是.pre-commit-hooks.yaml文件,一个标准的pre-commit定义内容核心是id,name,entry,language,entry实际上就是一个pythonentry_points的console_......
  • VBS遍历文件或文件夹路径输入文件的所有绝对路径(附源码)
    <p>源码如下:</p>FunctionlistFilesPath(filepath)t1=Timer()Debug.WriteLine"****现在开始执行计数,用时:"+CStr(t1)Setfso=CreateObject("scripting.filesystemobject")Setmyfolder=fso.GetFolder(filepath)......