• 从源代码构建Qt6开发工具


    概述:

    Qt是一个牛B的平台,不管是开发Windows平台、Linux平台,还是Mac平台的本地应用都很方便,后面还扩展到Android,近一两年又出了MCU(笔者也没用过),真的是越来越丰富了。

    这个平台最牛B的功能,当属信号和槽(singnals/slots),使对象间的交互非常方便;不像微软自家的Windows SDK,多少年一直是那个样子,没有什么进展,什么声明窗口类、注册窗口类。。。等等,很复杂,让人看着就头疼。虽然有.NET平台,但作为纯技术流,在很多情况下还是需要本地代码开发:简单!高效!

    笔者从12年开始接触以来,断断续续一直在关注,也算见证了它的一步步发展。从最初的Trolltech,到Nokia,在到Digia,东家一再变更,但不变的是开发者对它的热情。很多大公司的知名产品都基于QT开发。

    我想QT发展最成功的原因还是它的一个开放的态度,但近几年不知怎么回事,微软都拥抱开源、拥抱Linux了,QT的东家却感觉有点作死。从QT5.15开始,不再提供二进制版本,官方只对商业许可用户提供二进制下载,需要开发者自己编译。

    笔者也尝试编译了下,还是会遇到很多坑,这里记录一下,和大家分享一些经验。

    编译平台:

    Win7   FAIL

    Win10  OK

    Ubuntu20.02  OK

    源码下载:

    方法一:直接从qt的git仓库下载,慢
    源码地址:https://code.qt.io/cgit/qt/qt5.git/refs/
    方法二:https://www.qt.io/offline-installers 下载包含所有module的源代码包

    需要工具(2021.9最新):

    Perl 5.32

    Python 3.9

    CMake

    Ninja

    Mingw64

    将以上工具的二进制(bin目录)加入到环境变量

    set BASE=C:qt

    set CMAKE=%BASE% oolscmake
    set NINJA=%BASE% ools inja-win
    set MINGW64=%BASE% oolsmingw64

    set PERL=%LOCALAPPDATA%activestateed778b86
    set PYTHON=%LOCALAPPDATA%ProgramsPythonPython39

    set PATH=%PATH%;%CMAKE%in;%NINJA%;%PERL%in;%PYTHON%;%MINGW64%in
    set QT6-BUILD=%BASE%src6.1.3qt-build

    编译:

    rmdir /S /Q %QT6-BUILD%
    mkdir %QT6-BUILD%
    cd %QT6-BUILD%
    ..configure.bat -release -no-pch -prefix %QT6-BUILD% -skip qtwebengine -skip qtwebview -skip qtdoc -make tools -nomake tests -nomake examples

    cmake --build . --parallel

    cmake --install .

    生成物(10个文件夹):

    bin,doc,include,lib,mkspecs,modules,phrasebooks,plugins,qml,translations

    下一篇抽空出“通过源代码编译Qt Creator”

    参考:
    Official: Qt for Windows https://doc.qt.io/qt-6/windows.html
    Official: Qt for Windows - Building from Source: https://doc.qt.io/qt-6/windows-building.html
    https://code.qt.io/cgit/qt/qt5.git/refs/
    https://decovar.dev/blog/2020/12/04/qt-without-installer/
    http://www.saoe.net/blog/building-qt-6-1-0-on-windows-10-with-visual-studio-2019/
    Linux:https://www.linuxfromscratch.org/blfs/view/svn/x/qt5.html
    http://wiki.digitser.cn/en-US/qt/compile5.15.html
    At last, let's build Qt statically | Declaration of VAR (retifrav.github.io)https://retifrav.github.io/blog/2018/02/17/build-qt-statically/
    https://doc.qt.io/qt-5/build-sources.html
    https://wiki.qt.io/Building_Qt_5_from_Git
    https://doc.qt.io/qt-5/qdoc-guide-clang.html

    Qt Creator:
    https://download.qt.io/development_releases/prebuilt/libclang/
    https://github.com/qt-creator/qt-creator/blob/master/README.md
    https://wiki.qt.io/Building_Qt_Creator_from_Git
    https://wiki.qt.io/MinGW-64-bit
    https://wiki.qt.io/Building_Qt_Creator_from_Git#mw-head

  • 相关阅读:
    android_SurfaceView 画图
    android_activity_研究(二)
    android_sdcard读写(一)
    双缓冲的小程序
    C++运算符重载小程序
    再练
    菜鸟的第一个博客(用java写的个小文本框)
    LUCENE第一个小程序(有错)
    蜗牛在奔跑
    指定目录下的java文件存储到一个Txt文本文件中
  • 原文地址:https://www.cnblogs.com/andy65007/p/15236572.html
Copyright © 2020-2023  润新知