用VS2017编译Qt 5.15.x静态库
一些莫名其妙的原因要升级到Qt5,耗时几天,总结如下:
第1步:下载源码包:qtbase-everywhere-opensource-src-5.15.x.zip
第2步:安装下面程序:strawberry-perl-5.x.x; python-3.x.x; rubyinstaller-devkit-3.23.x.x
第3步:解压源码包到目录,如:\src-5.15\qtbase\,修改\mkspecs\common\msvc-desktop.conf:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT QMAKE_CFLAGS_DEBUG = -Zi -MTd
第4步:打开x86 Native Tools Command Prompt for VS2017,进入源码目录执行:
configure -static -debug-and-release -opensource -confirm-license -nomake tests -nomake examples
第4步:执行nmake,开始编译 。。。
第5步:执行nmake install,开始安装。。。
说明:
1. 建议使用VS2017或之前版本编译,否则配置时Qt 5.15.x可能无法识别
2. Qt5开始,源码树被划分多个子模块,可以单独编译(完整的源码包约有900多Mb)
3. 安装perl,ruby后,确保环境变量被设置,命令行执行:
perl -version
ruby --version
4. 编译64位,运行x64 Native Tools Command Prompt,其它步聚相同
5. configure加上: -prefix 指定安装目录,默认是:C:\Qt\Qt-5.15.x,此目录不可更改,除非重新编译。Qt-VSAddin 打开工程时需要查找QT_INSTALL_PREFIX宏。
6. config_help.txt包含完成的配置选项,config.summary文件中包含配置后选项,修改配置后configure加上-recheck-all
7. 重新编译前先执行nmake clean
遇到的问题:
1. 编译dbus出错,configure加上: -no-dbus 不编译Qt D-Bus模块,还是报错:qdbusxml2cpp.cpp(83): error,找到include/qt5/QtCore/qconfig.h增加如下内容:
#if defined(QT_NO_DBUS) && defined(QT_DBUS) # undef QT_NO_DBUS #elif !defined(QT_NO_DBUS) && !defined(QT_DBUS) # define QT_NO_DBUS #endif
2. 报错:缺少flex,安装WinFlexBison,修改win_flex.exe文件名为flex.exe,设置环境:set path=%PATH%;d:\WinFlexBison
3. 报错:缺少llvm-cofig,安装LLVM(注意需对应Qt编译位数),发现没有llvm-config,下载llvm源码包单独编译tools其中的llvm-config,放到LLVM/bin
编译子模块qttools:
第1步:下载源码包:qttools-everywhere-src-5.15.x.zip
第2步:解压源码包到目录:如:\src-5.15\qttools
第3步:安装LLVM, 添加环境变量LLVM_INSTALL_DIR到安装目录:set LLVM_INSTALL_DIR=d:\LLVM
第4步:设置qmake到环境变量,进入qttools子目录执行:
qmake
nmake
nmake install
posted on 2023-10-21 13:14 inthelight 阅读(536) 评论(0) 收藏 举报
浙公网安备 33010602011771号