码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【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。脚本文件的内容如下:

    1. @echo off
    2. call "D:/Download/VS2019/install/VC/Auxiliary/Build/vcvars64.bat"
    3. pushd qt-everywhere-src-5.12.9
    4. configure -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 库的 plugins 目录: 该目录的位置在  qt安装目录/plugins (或者将plugins 下的platform目录拷贝到与执行文件同级目录下)

        

    5、cmake 引入 QT 库

    CMakeLists.txt

    1. cmake_minimum_required(VERSION 3.15.0)
    2. project(QTTest)
    3. set(QT_ROOT_PATH "C:/Users/GZX/Desktop/qt5_7_lib_shared_64")
    4. # 添加库的检索路径
    5. list(APPEND CMAKE_PREFIX_PATH ${QT_ROOT_PATH})
    6. find_package(Qt5 COMPONENTS
    7. Gui
    8. Core
    9. Widgets
    10. )
    11. # 添加头文件路径
    12. include_directories(${QT_ROOT_PATH}/include)
    13. set(CMAKE_INCLUDE_CURRENT_DIR ON)
    14. set(CMAKE_AUTOUIC ON) # 自动编译.ui文件
    15. set(CMAKE_AUTORCC ON) # 自动编译.qrc文件
    16. set(CMAKE_AUTOMOC ON) # 自动编译包含宏Q_OBJECT的文件
    17. add_executable(${PROJECT_NAME} qtTest.cpp)
    18. target_link_libraries(${PROJECT_NAME}
    19. Qt5::Core
    20. Qt5::Widgets
    21. Qt5::Gui
    22. )

    qtTest.cpp

    1. #include
    2. #include
    3. int main(int argc, char** argv)
    4. {
    5. QApplication app(argc, argv);
    6. QLabel *label = new QLabel("Hello Qt!");
    7. label->show();
    8. app.exec();
    9. return 0;
    10. }

    参考文章: 

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

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

    Perl 环境安装 | 菜鸟教程

  • 相关阅读:
    vue中screenfull组件实现全屏和非全屏+怎么给页面全屏加一张图片且不需要设置js获取页面高度
    ICC2: secondary pg pin的作用与连接
    大学生静态HTML鲜花网页设计作品 DIV布局网上鲜花介绍网页模板代码 DW花店网站制作成品 web网页制作与实现
    微服务nacos或者yml配置内容部分加密jasypt
    微信公众号里怎么实现预订房间功能
    Self-Attention和Multi-Head Attention的详细代码内容(没有原理)
    RabbitMQ系列【1】概述
    动态自适应可变加权极限学习机ELM预测算法附Matlab代码
    JavaScript位运算的妙用
    nginx自定义负载均衡及根据cpu运行自定义负载均衡
  • 原文地址:https://blog.csdn.net/challenglistic/article/details/133749726
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号