当前位置: 首页 > news >正文

【QT】Windows 编译并使用 QT 5.12.7源码

1、下载 QT 源码

QT5.12.7源码下载地址:  download | QT 5.12.7

选择任意一种下载即可,适用于 Windows 和 Linux 环境

这里选择下载 .zip 文件。 

2、安装依赖

(1) 安装 perl

perl 安装包下载地址:  download | perl for windows

根据当前系统选择对应版本。下载完毕后双击开始安装,一路next即可。最终可以在命令行查看perl 是否安装成功,输入 perl -v

(2) 安装 ruby

ruby 国内下载镜像:  download | ruby 3.2.2

点击所需版本开始下载,下载完毕后就根据提示进行安装

安装完毕后,点击 finish,此时会出现一个弹窗,输入 3

检查是否安装成功

(3) 安装 python

python 下载地址: Welcome to Python.org

python的安装这里就不再赘述,可以自行百度,python 版本只需要大于 2.7 即可。

3、创建编译脚本

因为编译 QT 涉及的选项较多,这里选择使用自定义的脚本来进行编译,在 qt 源码的上一层目录下新建一个脚本文件 qt-config.bat。脚本文件的内容如下:

@echo offcall "D:/Download/VS2019/install/VC/Auxiliary/Build/vcvars64.bat"pushd qt-everywhere-src-5.12.9configure  -prefix C:/Users/GZX/Desktop/qt-everywhere-src-5.12.9/install -opensource -confirm-license -debug -static -nomake examples -nomake tests -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -no-openssl -no-opengl -mp

第一句 @echo off  表示不打印注释

第二句 call 是用来引用vs编译器的相关环境变量的,路径需要跟你实际的安装路径对应(推荐使用 everything 工具找到对应的文件)

第三句 pushd 表示进入到qt源码目录下,该目录下包含 configure.bat 文件

第四句就是配置 qt 的编译选项了,可以参考下面的部分选项解释(下面是Linux环境下的脚本)

4、开始编译 QT 源码

进入到 qt-config.bat 脚本所在的命令行路径,输入 .\qt-config.bat 便可以开始运行脚本进行编译了(中间可能会停下来,需要你选择qt版本和是否接受认证)

执行完毕后,接下来输入 nmake 进入漫长的编译过程了。(建议预留足够的磁盘空间)

编译完毕后,输入 nmake install 安装到之前指定的目录下

安装完毕后,需要将两个路径添加到环境变量

  1. qt库的 bin目录: 这里面包含了所有的 dll 文件,这是执行文件在运行时所需的
  2. qt 库的 platforms目录: 该目录的位置在  qt安装目录/plugins/platforms

5、cmake 引入 QT 库

CMakeLists.txt

cmake_minimum_required(VERSION 3.15.0)
project(QTTest)set(QT_ROOT_PATH "C:/Users/GZX/Desktop/qt5_7_lib_shared_64")
# 添加库的检索路径
list(APPEND CMAKE_PREFIX_PATH ${QT_ROOT_PATH})
find_package(Qt5 COMPONENTSGuiCoreWidgets
)
# 添加头文件路径
include_directories(${QT_ROOT_PATH}/include)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)       # 自动编译.ui文件
set(CMAKE_AUTORCC ON)       # 自动编译.qrc文件
set(CMAKE_AUTOMOC ON)       # 自动编译包含宏Q_OBJECT的文件add_executable(${PROJECT_NAME} qtTest.cpp)
target_link_libraries(${PROJECT_NAME}Qt5::CoreQt5::WidgetsQt5::Gui
)

qtTest.cpp

#include <QtWidgets/QLabel>
#include <QtWidgets/QApplication>int main(int argc, char** argv)
{QApplication app(argc, argv);QLabel *label = new QLabel("Hello Qt!");label->show();app.exec();return 0;
}

参考文章: 

记一次Qt 5.15源码编译 - 知乎

Windows平台下安装Ruby_windows安装ruby-CSDN博客

Perl 环境安装 | 菜鸟教程

http://www.lryc.cn/news/187979.html

相关文章:

  • php实战案例记录(15)获取GET和POST请求参数
  • k8s-9 ingress-nginx 特性
  • java案例24:模拟百度翻译
  • 汽车烟雾测漏仪(EP120)
  • 【轻松玩转MacOS】安全隐私篇
  • 4.02 用户中心-上传头像功能开发
  • 在Ubuntu 18.04安装Docker
  • Vue-2.1scoped样式冲突
  • Matlab之查询子字符串在字符串中的起始位置函数strfind
  • [游戏开发][Unity]安卓出包报错记录
  • 在两个有序数组中找整体第k小的数
  • Linux 指令心法(十)`head` 显示文本文件的开头部分
  • 前端——Layui的导航栏与tab页联动
  • 一致性哈希算法
  • 深度学习基础之参数量(3)
  • 红队专题-从零开始VC++远程控制软件RAT-C/S-[2]界面编写及上线
  • 磁盘满了对日志打印(Logback)的影响
  • 【算法与数据结构】--算法基础--数据结构概述
  • QECon大会亮相产品,全栈测试平台推荐:RunnerGo
  • 前端小案例-图片存放在远端服务器
  • 【鼠标右键菜单添加用VSCode打开文件或文件夹】
  • 【jvm--堆】
  • 【数据库——MySQL(实战项目1)】(1)图书借阅系统
  • [GXYCTF 2019]Ping Ping Ping题目解析
  • HTTP协议的请求协议和响应协议的组成,HTTP常见的状态信息
  • 【LeetCode】剑指 Offer Ⅱ 第6章:栈(6道题) -- Java Version
  • vue3的element-plus的el-dialog的样式修改无效问题
  • 归纳所猜半结论推出完整结论:CF1592F1
  • WPFdatagrid结合comboBox
  • Markdown类图之继承、实现、关联、依赖、组合、聚合总结(十五)