「下载 qt-everywhere-opensource-src-4.8.7.tar.gz:http://download.qt-project.org/archive/qt/4.8/4.8.7/」
对于Qt的初学者来说,Qt有很多不熟悉的地方,安装和使用时,都会遇到各种各样的“坑”。这些坑,如果经历过一次,就会发现其实是很简单的问题。但是如果不熟悉,那么可能折腾很久也没解决。因此我把我自己遇到的(也是后来常常被问到的)一些问题放在这里,供大家参考、讨论。
作者:玟清 链接:https://www.zhihu.com/question/27455963/answer/36722992 来源:知乎 著作权归作者所有,转载请联系作者获得授权。
本编介绍如何在嵌入式Linux开发板上配置Qt运行环境,并进行Qt程序运行测试。
docker pull registry.cn-hangzhou.aliyuncs.com/gloomyghost/yuzukilizard
armv7是ARMv7-A指令集架构的缩写,其中“A”表示“应用程序级别”。ARMv7-A架构是ARM架构的第七代,支持32位指令和地址。它是2011年前的大多数ARM芯片所采用的架构,包括Cortex-A7、Cortex-A9和Cortex-A15等。
Qt 是一个跨平台的C++图形用户界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
在linux环境下进行程序开发时,经常需要使用makefile管理编译代码,特别是一些大型工程,而makefile工具语法晦涩深入研究较为困难,好在有很多工具可以自动生成makefile,qmake就是其中的一种。
Qt 是一个跨平台的应用程序开发框架。使用Qt开发的应用程序,只需要编写一套代码,然后把这套代码放在不同平台的Qt环境去编译,就会生成可以运行在对应平台的应用程序。例如,我在Windows写了一个串口助手,这套代码不用修改,放在Linux环境下的Qt开发环境,重新编译,就可以生成可以在Linux环境下运行的串口助手,当然,Qt支持的环境有很多。不同平台下的移植,只需要修改很小一部分或者不用修改就可以直接运行。
至于最后一个 make 步骤,就是在通过qmake生成的 Makefile 来编译成目标文件和最终的可执行文件
在之前的博文中,已经说过相关 autotools,qmake转cmake,cmake-cpack,checkinstall,linuxdeployqt ,本博文将qt 安装配置做一个简单的讲解,搭配 linuxdeployqt 来说明,qmake 安装配置。
下载地址:http://download.qt.io/archive/qt/5.13/5.13.0/ 最新版本尝鲜。
QMake 工程 转换为CMake 工程 源码目录结构 . ├── build.sh ├── businesscontrol.cpp ├── businesscontrol.h ├── globaldef.h ├── lib │ └── x86_64 ├── log │ ├── LogFileManager.cpp │ ├── LogFileManager.h ├── main.cpp ├── mqtt │ ├── mqttclient.cpp │ ├── mqttclient.h ├
基于Windows-Qt 发布的打包工具windeployqt,主要打包Qt相关依赖库,但是在linux,qt官方并未发布对应的打包版本。在github中,有人开源了这个版本linuxdeployqt,之前一直知道但是没怎么用,最近因为要打包对应工程,又拿出研究了一下。
用过Linux的人想必都知道Qt(不是QuickTime,呵呵)这个名称,KDE就是用Qt写的,我也是接触Linux后才认识它的。
想在Ubuntu上玩一下minigui,需要用QT下的QVFB,所以得在我的Ubuntu上先装上Qt 我的Ubuntu版本:
VTK需要OpenGL3.0或更高版本的驱动,但虚拟机下的Ubuntu不支持OpenGL3.0,或者自己按网上教程配置之后也能支持,但过程相当繁琐,本人试验失败。
您可以通过调用以下选项来覆盖默认为/opt/Qt/5.12.6/android_armv7的QTDIR:
Qt Creator是一个IDE,就是一个平台,一个开发环境,类似的比如说VS,也可以进行Qt开发,当然VS中的Qt是作为一个插件插入VS平台的。
有时候我们编译程序完成后需要执行某些操作,比如复制执行文件或库文件到指定目录,如果这些都靠手动复制,未免会太繁琐且容易出错。本文介绍使用Qmake工具编译完成后自动执行自定义脚本的方法。 编译完成后执行脚本/命令 使用QMAKE_POST_LINK变量可以指定一个或多个脚本/命令在编译完成(链接)后执行的操作。 比如: QMAKE_POST_LINK += cmd_line1 cmd_line2 编译完成前执行脚本/命令 使用QMAKE_PRE_LINK变量可以指定一个或多个脚本/命令在编译完成前(链接前
把上面编译出来的 100ask-imx6ull-pro512d-systemv-v1.img重命名为emmc.img(或sdcard.img),把emmc.img(或sdcard.img) 放到“100ask_imx6ull 烧写工具”的 files 目录里,就可以使用工具烧写到 EMMC(或 SD/TF 卡)。
一、最近这家公司接到一个订单,客户使用到国产操作系统,意味着需要使用到 Linux 系统,于是乎,之前的东西又要捡起来,而且,平时代码主要是windows 平台,这次需要将代码移植到linux 平台,并且,由于这家公司主要买设备,因此,需要使用一些Demo 测试软件,而在linux 平台,目前主流的GUI 程序编写主要用到 QT ,因此,需要安装QT. 第一次尝试在linux 使用QT 安装过程遇到非常多问题,因此,这篇文章记录下,如何在 Ubuntu 下安装QT.
第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #include <QPushButton> int main(int argc, char* argv[]) { QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理 QMainWindow w; //
1.首先,感性的认识是,qmake可以利用源文件(包括头文件h,实现文件cpp,qt的ui文件等等)生成各种不同类型的工程,工程需要的Makefile文件,可执行的与不可执行的,这取决于所用的模板(包括app、lib、subdirs、vcapp、vclib)。
qmake工具有助于简化跨平台项目的开发构建过程。qmake自动生成Makefiles,这样只需要几行信息就可以创建Makefile。您可以在任何软件项目中使用qmake,无论是否使用Qt编写。
Qt 5.9 之后的安装包与之前相比,不再区分 VS 版本和 MinGW 版本,而是全都整合到了一个安装包中。因此,与之前的安装包相比,体积也是大了不少,以前是 1G 多,现在是 2G 多。
QMake扩展了每个工程文件的信息,生成一个执行编译和链接过程的必须命令的MakeFile。
在这里推荐一款比较好用的 HTML 转换为 PDF 的工具 Wkhtmltopdf,安装使用介绍如下。
1. 准备下载相关的交叉编译器gcc (1)、aarch32架构的交叉编译器 因为系统是ubuntu 14-04的版本,可以直接使用安装的方式去安装aarch32架构的交叉编译器。也可以按照aarch64架构的方式去下载aarch32的交叉编译器,建议g++版本低一点,4.8.4左右。 sudo apt-get install g++-arm-linux-gnueabihf 执行命令成功后,使用 命令 arm-linux-gnueabihf-g++ -v 查看到安装的版本值,安装成功! 版本值显示如下图:
上篇文章:嵌入式Linux-Qt环境搭建,介绍了如何搭建在Linux开发板中搭建Qt的运行环境,并测试了Qt自带的例程。
由于qt4.8支持的环境比较老,所以ubuntu18 20这些高版本安装时会出现各种问题,最好在14和16下安装,本文的版本是ubuntu16.04。
1.Qmake -project生成Qt Pro文件
Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址: http://www.qt.io/ 也可以访问Qt项目域名:http://qt-project.org/ Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。 基于Qt的软件非常多,其中最知名的要数Linux桌面系统KDE(涵盖无数以K打头的应用软件)。国内WPS for Linux版本、360 for Linux也是使用Qt库开发的界面。只要有C++基础,Qt是很容易学的,而且开发跨平台的程序也容易。目前主流使用的Qt库有Qt4和Qt5两个大版本,下面介绍其在Windows系统里的下载和安装。
qmake 有一个持久化配置系统,它允许在 qmake 中设置一次属性,并在每次调用 qmake 时查询它。
1、Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DLL库,这十分不方便。当然,如果是程序员之间会比较方便,如果别人的机子也安装了Qt,并且设置了环境变量,那么也可以不将公共的DLL附在发布的程序中。但是,这样显然还是不方便。
Qt 是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔 NXP i.MX 93 开发板(MYD-LMX9X开发板)使用 Qt6.5 版本进行应用开发。在 Qt 应用开发中,推荐使用 QtCreator 集成开发环境,可以在 Linux PC 下开发 Qt 应用,自动化地交叉编译为开发板的 ARM 架构。
获取到当前使用到的Qt或QMAKE的一些信息(版本,执行文件路径,编译器路径等)。使用方法如:$$[QMAKE_VERSION],需要注意的是使用方括号包含变量。
需在Qt->Projects->Build Steps->Additionals arguments 配置变量,如图
该文章介绍了一个基于Qt和OpenCV的图像处理小软件,包括软件的安装、使用示例和代码下载。
以前为ARM64编译软件包,直接在Makefile里指定交叉编译器、sysroot的路径,就能成功编译。
所以可想而知,同一套 Qt 代码在不同平台上生成的应用,界面风格将会迥异(随平台而定)
在Qt助手(assistant.exe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,包括QT支持的Windows、MAC、Linux(KDE和GNOME)都有相应的方法。
此变量指定的路径可以包含 src 目录下的自定义 Java 类。默认情况下,androiddeployqt 工具将应用程序模板从 Qt for Android 安装路径复制到项目的构建目录中,然后它复制此变量指定的路径的内容,覆盖任何现有文件。
欢迎大家一起协作完善。 https://github.com/aeagean/DeployByQmake
尽管如此,如果简单Qt的工程都不知道怎么用 cmake 构建,复杂的工程,就更不知道如何使用 cmake 了。还是从简单的学起吧
另外我们还可以在程序中使用QLibraryInfo类的location函数获取到Qt的安装信息。
以下为本人编译的Qt5.0.0 MSVC2012版(Express with Update 1),与各位分享一下。不过目测Qt5.0.1也快来了吧……
领取专属 10元无门槛券
手把手带您无忧上云