【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 off

call "D:/Download/VS2019/install/VC/Auxiliary/Build/vcvars64.bat"

pushd qt-everywhere-src-5.12.9

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

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 COMPONENTS
    Gui
    Core
    Widgets
)
# 添加头文件路径
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::Core
    Qt5::Widgets
    Qt5::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 环境安装 | 菜鸟教程

猜你喜欢

转载自blog.csdn.net/challenglistic/article/details/133749726