编译QT源码

tech2025-02-06  10

下载QT源码

1.离线安装 安装的时候勾选Sources 2.直接下载源码 例如5.12.0的源码下载地址:qt-everywhere-src-5.12.0

2. 编译工具下载

ActivePerl ActivePerl下载地址: 默认安装时会添加ActivePerl到环境变量。 测试添加是否成功: Python 下载Python,添加Python到环境变量。 测试添加是否成功: Ruby Ruby下载地址:RubyInstaller for Windows 安装时勾选添加到环境变量的选项: 编译环境选择 在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。 这两者的区别如下:

当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。

我选择MSVC,打开安装VS时自带安装的MSCV:VS 2017的开发人员命令提示符

编译

打开VS交叉编译控制台,进入源码目录,比如我的: cd E:\Qt\Qt5.13.0\5.13.0\Src 运行目录中的configure.bat

configure -prefix E:\Qt\Qt5.13.0\5.13.0\myDebugQt -debug -shared -opensource -platform win32-msvc2017 -no-optimized-qmake -no-dbus -separate-debug-info -no-opengl -no-dbus -developer-build -no-qml-debug -confirm-license -nomake examples -nomake tests

-prefix [dir] 指定安装目录默认在 E:\Qt\Qt5.13.0\5.13.0\myDebugQt -debug debug版本 -shared 动态库 -platform win32-msvc2017 平台信息 -no-optimized-qmake 禁用qmake的优化作用

完成后输入

nmake

开始编译大概需要几个小时

完成后输入nmake install,进行编译安装

nmake install

也可以2步一起

nmake install

编译选项

configure.bat 的编译选项 1)-prefix [dir] 指定安装目录默认在; 2)-hostprefix [dir] 指定可扩展的工具库安装路径,默认当前目录; 3) -prefix-install 指定QT的本地安装; 4)-bindir [dir] 指定可执行文件路径 [dir](默认 PREFIX/bin下); 5)-libdir [dir] 指定库文件路径 [dir](默认 PREFIX/lib); 6)-docdir [dir] 指定文档路径 [dir](默认 PREFIX/doc); 7)-headerdir [dir] 指定头文件路径 [dir](默认 PREFIX/include); 8)-plugindir [dir] 指定插件路径 [dir] (默认 PREFIX/plugins); 9)-datadir [dir] 指定QT要使用到的一些数据文件所在路径 [dir] (默认 PREFIX); 10)-translationdir [dir] 指定QT程序的翻译文件路径 [dir](默认 PREFIX/translations); 11)-sysconfdir [dir] 指定QT的设置文件路径 [dir](默认 PREFIX/etc/settings); 12)-examplesdir [dir] 指定实例文件, [dir](默认 PREFIX/examples) 13)-demosdir [dir] 指定demos的安装路径 [dir] (默认 PREFIX/demos); 14)-buildkey [key] 通过指定的key生成QT库和插件; 15)-release 此选项在编译过程QT会对程序进行优化,在发布软件的时候应该用此选项,是默认选项; 16)-debug 加上此选项编译程序QT不会做出优化,往往在开发过程使用此选项; 17)-debug-and-release 编译两个版本; 18)-developer-build 编译Qt的开发商和连接选项(包括自动测试出口的Qt); 19)-opensource 以开源版本发布程序; 20)-commercial 以商业版本发布程序; 21)-shared 创建和使用共享Qt库; 22)-static 创建和使用静态的Qt库; 23)-no-fast 使用通常的Makefile来编译,是默认选项; 24)-fast 快速编译,除了封装必要的库,部分步骤省略或者用快速的方法处理; 25)-no-largefile 禁用大文件支持;

26)-largefile 支持访问大于4GB的文件; 27)-no-exceptions 禁用编译器本身对异常的处理; 28)-exceptions 启用编译器本身对异常的处理;

29)-no-accessibility 、-accessibility 禁用/启用无障碍支持; 30)-no-stl、-stl 禁用/启用STL支持; 31)-no-sql-[driver] 禁用SQL; 32)-qt-sql-[driver] 根据需求启用SQL插件(默认全部关闭); 33)-plugin-sql-[driver] 禁用/启用/启用插件 对SQL的支持; 34)-system-sqlite 启用支持sqlite也可用-qt-sqlite; 35)-no-qt3support 、-qt3support 禁用/启用qt3支持模块; 36)-no-xmlpatterns 、-xmlpatterns 禁用/启用xmlpatterns模块; 37)-no-phonon 、-phonon 禁用/启用Phonon模块(可以理解为声音控制模块); 38)-no-phonon-backend、-phonon-backend 禁用/启用phonon-backend模块; 39)-no-svg、-svg 禁用/启用svg模块; 40)-no-webkit、-webkit 禁用/启用webkit模块(访问网络模块); 41)-no-scripttools 、-scripttools 禁用/启用scripttools模块; 42)-platform target x86平台指定模块 (qws/linux-x86-g++); 43)-qtnamespace [name] 指定所有库代码路径; 44)-qtlibinfix [infix] 重命名所有.so库文件到指定路径; 45)-qt-zlib zlib依赖包;

46)-no-gif 、-qt-gif gif图片支持包; 47)-no-libtiff 、-qt-libtiff tiff支持插件; 48)-no-libpng 、-qt-libpng png图片支持插件; 49)-no-libmng 、-qt-libmng mng支持插件; 50)-no-libjpeg 、-qt-libjpeg jpeg图片支持插件;

51)-no-openssl、-openssl openssl支持插件;

52)-make [part]、-nomake [part] 选择是否编译某些无关紧要的子模块; 53)-continue 忽略错误的编译; 54)-verbose, -v 显示每个步骤的详细信息; 55)-silent 安静的编译省略信息回显; 56)-no-optimized-qmake、-optimized-qmake 禁用/开启qmake的优化作用; 57) -no-nis 、-nis 禁用/开启NIS的支持; 58)-no-cups 、-cups 禁用/开启对CUPS的支持;

59)-no-iconv 、-iconv 禁用/开启对iconv的支持; 60)-no-pch 、-pch 禁用/开启是否使用预处理器头文件; 61)-no-dbus、-dbus 禁用/开启对QTdbus模块的编译; 62)-reduce-relocations 减少因为链接优化而导致的而外的库文件重置 63)-no-separate-debug-info 不将调试信息放在一个文件内; 64)-separate-debug-info 将调试信息放在一个文件内; 65)-no-opengl 、-opengl 禁用/开启对opengl的支持; 66)-no-glib 、-glib 禁用/启用对glib的支持。

最新回复(0)