Windows平台编译Qt 5.15.16时遭遇错误求助
Qt 5.15.16编译报错问题
操作步骤
- 克隆源码:
git clone https://code.qt.io/qt/qt5.git - 初始化仓库:
perl init-repository --module-subset=default,-qtwebengine - 在源码旁新建文件夹,执行配置命令:
..\qt5\configure.bat ^ -prefix c:\Qt\5.15.16\msvc2019_64 ^ -opensource -confirm-license ^ -recheck-all -debug-and-release -mp -nomake examples -nomake tests ^ -sql-oci -skip qtwebengine -skip qtspeech -platform win32-msvc ^ -opengl dynamic -force-debug-info -optimize-size ^ -ssl -make libs ^ -I "C:\Qt\Tools\OpenSSL\Win_x64\include" ^ -I "%OCI_INC_DIR%" ^ -L "C:\Qt\Tools\OpenSSL\Win_x64\lib" ^ -L "%OCI_LIB_DIR%" - 配置完成后,在已执行以下命令并设置OCI环境变量的Windows命令行中执行
nmake:
命令行PATH已包含Git 2.49.0、Perl 5.40.2、Python 3和CMake 3.30.3。call "\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
第一次编译错误
编译数分钟后出现如下错误:
cmd /c C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\mime\generate.bat C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\mime\packages\freedesktop.org.xml > .rcc\debug\qmimeprovider_database.cpp LPX-00202: could not open "sel" (error 200) Failed to run xml sel -D -B -t -c / C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\mime\packages\freedesktop.org.xml at C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\mime\generate.pl line 86. NMAKE : fatal error U1077: 'cmd' : 返回代码 '0x1' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\nmake.exe"' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: 'cd' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: 'cd' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: 'cd' : 返回代码 '0x2' Stop.
再次执行nmake后的错误
再次执行nmake,错误信息变为:
cl -c -FIglobal\qt_pch.h -Yuglobal\qt_pch.h -Fp.pch\debug\Qt5Cored_pch.pch -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -std:c++17 -utf-8 -EHsc -MP -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 /Fd.obj\debug\Qt5Cored.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DPCRE2_CODE_UNIT_WIDTH=16 -DPCRE2_STATIC -D_WINDLL -IC:\Qt-Source\qt5\qtbase\src\corelib -I. -IC:\Qt-Source\qt5\qtbase\src\3rdparty\zlib\src -Iglobal -IC:\Qt-Source\qt5\qtbase\src\3rdparty\md5 -IC:\Qt-Source\qt5\qtbase\src\3rdparty\md4 -IC:\Qt-Source\qt5\qtbase\src\3rdparty\sha3 -IC:\Qt-Source\qt5\qtbase\src\3rdparty -IC:\Qt-Source\qt5\qtbase\src\3rdparty\double-conversion\include -IC:\Qt-Source\qt5\qtbase\src\3rdparty\harfbuzz\src -IC:\Qt-Source\qt5\qtbase\src\3rdparty\tinycbor\src -I.rcc/debug -I..\..\include -I..\..\include\QtCore -I..\..\include\QtCore\5.15.16 -I..\..\include\QtCore\5.15.16\QtCore -Itmp -I.moc\debug -I.tracegen\debug -IC:\Qt-Source\qt5\qtbase\src\3rdparty\pcre2\src -IC:\Qt\Tools\OpenSSL\Win_x64\include -IC:\oracle-dev\instantclient_19_12\sdk\include -IC:\Qt-Source\qt5\qtbase\mkspecs\win32-msvc -Fo.obj\debug\ @C:\Users\fabio\AppData\Local\Temp\nm2476.tmp qmimeprovider.cpp C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(88): error C2479: 'QMimeProviderBase::{ctor}': 'allocate( )' 仅对静态范围的数据项有效 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(88): error C2024: 'alignas' 属性仅适用于变量、数据成员和标记类型 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(637): error C2065: 'mimetype_database': 未声明的标识符 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(638): error C2065: 'mimetype_database': 未声明的标识符 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(638): error C2065: 'MimeTypeDatabaseOriginalSize': 未声明的标识符 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(638): error C2338: 压缩后的MIME数据库大于原始大小 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(640): error C2065: 'MimeTypeDatabaseOriginalSize': 未声明的标识符 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(640): error C2338: 捆绑的MIME数据库过大 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(642): error C2065: 'mimetype_database': 未声明的标识符 C:\Qt-Source\qt5\qtbase\src\corelib\mimetypes\qmimeprovider.cpp(643): error C2065: 'MimeTypeDatabaseOriginalSize': 未声明的标识符 NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\cl.EXE"' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\nmake.exe"' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: 'cd' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: 'cd' : 返回代码 '0x2' Stop. NMAKE : fatal error U1077: 'cd' : 返回代码 '0x2' Stop.
补充说明
已在3台Windows 11设备上重复上述步骤,均出现相同问题,目前不清楚错误中的“sel”是否为XML命令对应的文件。
内容的提问来源于stack exchange,提问作者Fabio Paolini
相关产品推荐
相关产品推荐

