在Windows和macOS平台,自主编译Qt Creator和Qt Designer源码

简介: 在Windows和macOS平台,自主编译Qt Creator和Qt Designer源码

Qt Creator和Qt Designer都是很好的开源项目,利于学习提升。



一、官方源码下载


1、官方github源码


https://github.com/qt-creator/qt-creator Qt Creator源码


https://github.com/qt-creator/qt-creator/tree/master/src/plugins/designer Qt Creator的设计师插件


https://github.com/qt/qtbase Qt核心类源码


https://github.com/qt/qttools Qt工具类源码


https://github.com/qt/qttools/tree/dev/src/designer Qt设计师的源码


https://github.com/qt/qttools/tree/dev/src/windeployqt 依赖库工具源码


2、官方正式发行网站【推荐这里下载】


qt-creator-opensource-src-4.12.4.zip,解压缩qt-creator-opensource-src-4.12.4.zip,里面有README.md,有详细的编译说明。


http://download.qt.io/official_releases/qtcreator/4.12/4.12.4/


qttools-everywhere-src-5.12.9.zip,里面有Qt设计师的源码。


http://download.qt.io/official_releases/qt/5.12/5.12.9/submodules/



二、笔者电脑的环境


1、Windows


Win7+Qt 5.12.9+Qt Creator 4.12+MSVC 2017 64bit+Python 3.7+ActivePerl-5.28 x64


2、MacOS-10.15-Catalina


MacOS 10.15.4+Qt 5.12.9+Qt Creator 4.12+Clang 11.0 x64+Python 3.7+Xcode 11.4


Mac终端命令sw_vers可以查看Mac OS版本


Mac终端命令clang --version可以查看clang版本



三、编译


Qt Creator IDE分别打开源码文件夹的qtcreator.pro和qttools.pro文件


qt-creator-opensource-src-4.12.4


qttools-everywhere-src-5.12.9


1、Windows


qt-creator-opensource-src直接编译即可,成功通过。


qttools-everywhere-src有少部分项目不支持debug编译,会报错,因为官网提供的Qt5Bootstrap.lib没有debug版本;


此外如果电脑没有安装vulkan-sdk,也会报错,无法打开包括文件: “vulkan/vulkan.h”


error: dependent 'F:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5Bootstrapd.lib' does not exist.

F:\Qt\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui\qvulkaninstance.h:55: error: C1083: 无法打开包括文件: “vulkan/vulkan.h”: No such file or directory


解决办法:


把\qttools-everywhere-src-5.12.9\src\src.pro去掉相应的子项目即可


macdeployqt

qdoc

qtdiag

windeployqt

winrtrunner


src.pro文件,去掉以上模块,加注释"#":


#qtConfig(qdoc): qtConfig(thread): SUBDIRS += qdoc

!android|android_app: SUBDIRS += qtpaths

macos {

#    SUBDIRS += macdeployqt

}

qtHaveModule(dbus): SUBDIRS += qdbus

#win32|winrt:SUBDIRS += windeployqt

#winrt:SUBDIRS += winrtrunner

#qtHaveModule(gui):!wasm:!android:!uikit:!qnx:!winrt: SUBDIRS += qtdiag

或者更彻底一点,把其他项目全部去掉,仅留下designer,


qttools-everywhere-src-5.12.9\qttools.pro文件修改为:


TEMPLATE = subdirs

CONFIG += ordered

SUBDIRS += \

   src \

qttools-everywhere-src-5.12.9\src\src.pro文件修改为:


TEMPLATE = subdirs

SUBDIRS = designer


2、macOS


qt-creator-opensource-src直接编译即可,成功通过。


qttools-everywhere-src直接编译即可,成功通过。



注意事项


qt-creator-4.12.x新版本引入了开源项目advanceddockingsystem


开源项目:https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System


在qtcreator的源码路径是:qt-creator-opensource-src-4.12.4\src\libs\advanceddockingsystem


编译之前,需要把源文件和头文件的编码修改为utf8+bom



附录1


build-qtcreator-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\src\app\app_version.h


#pragma once
namespace Core {
namespace Constants {
#define STRINGIFY_INTERNAL(x) #x
#define STRINGIFY(x) STRINGIFY_INTERNAL(x)
const char IDE_DISPLAY_NAME[] = "Qt Creator";
const char IDE_ID[] = "qtcreator";
const char IDE_CASED_ID[] = "QtCreator";
#define IDE_VERSION 4.12.4
#define IDE_VERSION_STR STRINGIFY(IDE_VERSION)
#define IDE_VERSION_DISPLAY_DEF 4.12.4
#define IDE_VERSION_MAJOR 4
#define IDE_VERSION_MINOR 12
#define IDE_VERSION_RELEASE 4
const char * const IDE_VERSION_LONG      = IDE_VERSION_STR;
const char * const IDE_VERSION_DISPLAY   = STRINGIFY(IDE_VERSION_DISPLAY_DEF);
const char * const IDE_AUTHOR            = "The Qt Company Ltd";
const char * const IDE_YEAR              = "2020";
#ifdef IDE_REVISION
const char * const IDE_REVISION_STR      = STRINGIFY(IDE_REVISION);
#else
const char * const IDE_REVISION_STR      = "";
#endif
// changes the path where the settings are saved to
#ifdef IDE_SETTINGSVARIANT
const char * const IDE_SETTINGSVARIANT_STR      = STRINGIFY(IDE_SETTINGSVARIANT);
#else
const char * const IDE_SETTINGSVARIANT_STR      = "QtProject";
#endif
#ifdef IDE_COPY_SETTINGS_FROM_VARIANT
const char * const IDE_COPY_SETTINGS_FROM_VARIANT_STR = STRINGIFY(IDE_COPY_SETTINGS_FROM_VARIANT);
#else
const char * const IDE_COPY_SETTINGS_FROM_VARIANT_STR = "";
#endif
#undef IDE_VERSION_DISPLAY_DEF
#undef IDE_VERSION
#undef IDE_VERSION_STR
#undef STRINGIFY
#undef STRINGIFY_INTERNAL
} // Constants
} // Core



相关文章
|
3月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
454 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
3月前
|
Linux API iOS开发
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
301 14
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
4月前
|
SQL Linux 调度
Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台
Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台
124 2
Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台
|
4月前
|
安全 Linux API
JEB Pro v5.31 (macOS, Linux, Windows) - 逆向工程平台
JEB Pro v5.31 (macOS, Linux, Windows) - 逆向工程平台
189 0
|
Unix Linux iOS开发
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
165 0
|
8月前
|
安全 前端开发 Linux
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
243 3
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
|
编解码 开发工具 UED
QT Widgets模块源码解析与实践
【9月更文挑战第20天】Qt Widgets 模块是 Qt 开发中至关重要的部分,提供了丰富的 GUI 组件,如按钮、文本框等,并支持布局管理、事件处理和窗口管理。这些组件基于信号与槽机制,实现灵活交互。通过对源码的解析及实践应用,可深入了解其类结构、布局管理和事件处理机制,掌握创建复杂 UI 界面的方法,提升开发效率和用户体验。
553 13
|
Windows
QT源码拾贝6-11(qwindowswindow)
这篇文章深入探讨了Qt源码中与窗口激活相关的函数,QDebug运算符重载,vscode的变量提示,Windows常用类型名,获取所有窗体的方法,以及QSharedPointer智能指针的使用。
424 0
QT源码拾贝6-11(qwindowswindow)
|
存储 Java C++
QT源码拾贝0-5(qimage和qpainter)
这篇文章介绍了在Qt源码中qimage和qpainter的使用,包括线程池的使用、智能指针的存储、std::exchange函数的应用、获取类对象的方法以及QChar字节操作。
280 0
QT源码拾贝0-5(qimage和qpainter)
|
IDE 开发工具 C++
qt creator + vs2019编译记录
本文记录了作者在使用qt creator和vs2019编译项目时遇到的困难和解决方案,包括编译环境设置、qt creator编译脚本的成功案例、不带Ninja的编译脚本问题、错误示范以及相关参考链接。
734 0
qt creator + vs2019编译记录

推荐镜像

更多
  • qt