Hello, everyone,
For Qt builds using ICC with precompiled headers on Windows got errors:
cd serialbus\ && ( if not exist Makefile C:\libQT-5.10-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.10-dev\build\qtserialbus\src\serialbus\serialbus.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile Microsoft (R) Program Maintenance Utility Version 14.11.25507.1 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile.Debug Microsoft (R) Program Maintenance Utility Version 14.11.25507.1 Copyright (C) Microsoft Corporation. All rights reserved. echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\..\\lib\\Qt5SerialBusd.dll.embed.manifest">..\..\lib\Qt5SerialBusd.dll_manifest.rc if not exist ..\..\lib\Qt5SerialBusd.dll if exist ..\..\lib\Qt5SerialBusd.dll.embed.manifest del ..\..\lib\Qt5SerialBusd.dll.embed.manifest if exist ..\..\lib\Qt5SerialBusd.dll.embed.manifest copy /Y ..\..\lib\Qt5SerialBusd.dll.embed.manifest ..\..\lib\Qt5SerialBusd.dll_manifest.bak xilink /NOLOGO /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.10 /MANIFEST /MANIFESTFILE:..\..\lib\Qt5SerialBusd.dll.embed.manifest /OUT:..\..\lib\Qt5SerialBusd.dll @C:\Users\test\AppData\Local\Temp\nmAAB6.tmp Creating library ..\..\lib\Qt5SerialBusd.lib and object ..\..\lib\Qt5SerialBusd.exp qcanbus.obj : error LNK2019: unresolved external symbol "public: __cdecl QCanBusDeviceInfo::~QCanBusDeviceInfo(void)" (??1QCanBusDeviceInfo@@QEAA@XZ) referenced in function "public: void __cdecl QCanBusDeviceInfo::`vector destructor iterator'(unsigned int)" (??_IQCanBusDeviceInfo@@QEAAXI@Z) ..\..\lib\Qt5SerialBusd.dll : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"' : return code '0x460' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop.
cd xmlpatterns\ && ( if not exist Makefile C:\libQT-5.10-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.10-dev\build\qtxmlpatterns\src\xmlpatterns\xmlpatterns.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile Microsoft (R) Program Maintenance Utility Version 14.11.25507.1 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile.Debug Microsoft (R) Program Maintenance Utility Version 14.11.25507.1 Copyright (C) Microsoft Corporation. All rights reserved. echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\..\\lib\\Qt5XmlPatternsd.dll.embed.manifest">..\..\lib\Qt5XmlPatternsd.dll_manifest.rc if not exist ..\..\lib\Qt5XmlPatternsd.dll if exist ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest del ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest if exist ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest copy /Y ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest ..\..\lib\Qt5XmlPatternsd.dll_manifest.bak xilink /NOLOGO /BASE:0x61000000 /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.10 /MANIFEST /MANIFESTFILE:..\..\lib\Qt5XmlPatternsd.dll.embed.manifest /OUT:..\..\lib\Qt5XmlPatternsd.dll @C:\Users\test\AppData\Local\Temp\nm4805.tmp Creating library ..\..\lib\Qt5XmlPatternsd.lib and object ..\..\lib\Qt5XmlPatternsd.exp qoutputvalidator.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qbasictypesfactory.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qnamedschemacomponent.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qqnametest.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qnamepool.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qxsdschematypesfactory.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qxsdtypechecker.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z) qxsdvalidatinginstancereader.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)<snip> qvariableloader.obj : error LNK2001: unresolved external symbol "public: class QXmlName & __cdecl QXmlName::operator=(class QXmlName const &)" (??4QXmlName@@QEAAAEAV0@AEBV0@@Z) qxmlquery.obj : error LNK2001: unresolved external symbol "public: class QXmlName & __cdecl QXmlName::operator=(class QXmlName const &)" (??4QXmlName@@QEAAAEAV0@AEBV0@@Z) qxmlserializer.obj : error LNK2001: unresolved external symbol "public: class QXmlName & __cdecl QXmlName::operator=(class QXmlName const &)" (??4QXmlName@@QEAAAEAV0@AEBV0@@Z) ..\..\lib\Qt5XmlPatternsd.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"' : return code '0x460' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop.
cd lib\ && ( if not exist Makefile C:\libQT-5.10-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.10-dev\build\qttools\src\designer\src\lib\lib.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile Microsoft (R) Program Maintenance Utility Version 14.11.25507.1 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile.Debug Microsoft (R) Program Maintenance Utility Version 14.11.25507.1 Copyright (C) Microsoft Corporation. All rights reserved. echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\..\\..\\..\\lib\\Qt5Designerd.dll.embed.manifest">..\..\..\..\lib\Qt5Designerd.dll_manifest.rc if not exist ..\..\..\..\lib\Qt5Designerd.dll if exist ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest del ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest if exist ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest copy /Y ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest ..\..\..\..\lib\Qt5Designerd.dll_manifest.bak xilink /NOLOGO /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.10 /MANIFEST /MANIFESTFILE:..\..\..\..\lib\Qt5Designerd.dll.embed.manifest /OUT:..\..\..\..\lib\Qt5Designerd.dll @C:\Users\test\AppData\Local\Temp\nmDDBC.tmp Creating library ..\..\..\..\lib\Qt5Designerd.lib and object ..\..\..\..\lib\Qt5Designerd.exp qdesigner_propertycommand.obj : error LNK2019: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetEnumValue::PropertySheetEnumValue(void)" (??0PropertySheetEnumValue@qdesigner_internal@@QEAA@XZ) referenced in function "public: static struct qdesigner_internal::PropertySheetEnumValue __cdecl QtPrivate::QVariantValueHelper<struct qdesigner_internal::PropertySheetEnumValue>::metaType(class QVariant const &)" (?metaType@?$QVariantValueHelper@UPropertySheetEnumValue@qdesigner_internal@@@QtPrivate@@SA?AUPropertySheetEnumValue@qdesigner_internal@@AEBVQVariant@@@Z) qdesigner_formbuilder.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetEnumValue::PropertySheetEnumValue(void)" (??0PropertySheetEnumValue@qdesigner_internal@@QEAA@XZ) qdesigner_propertysheet.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetEnumValue::PropertySheetEnumValue(void)" (??0PropertySheetEnumValue@qdesigner_internal@@QEAA@XZ) qdesigner_propertycommand.obj : error LNK2019: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetFlagValue::PropertySheetFlagValue(void)" (??0PropertySheetFlagValue@qdesigner_internal@@QEAA@XZ) referenced in function "public: static struct qdesigner_internal::PropertySheetFlagValue __cdecl QtPrivate::QVariantValueHelper<struct qdesigner_internal::PropertySheetFlagValue>::metaType(class QVariant const &)" (?metaType@?$QVariantValueHelper@UPropertySheetFlagValue@qdesigner_internal@@@QtPrivate@@SA?AUPropertySheetFlagValue@qdesigner_internal@@AEBVQVariant@@@Z) qdesigner_formbuilder.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetFlagValue::PropertySheetFlagValue(void)" (??0PropertySheetFlagValue@qdesigner_internal@@QEAA@XZ) qdesigner_propertysheet.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetFlagValue::PropertySheetFlagValue(void)" (??0PropertySheetFlagValue@qdesigner_internal@@QEAA@XZ) ..\..\..\..\lib\Qt5Designerd.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"' : return code '0x460' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop.
etc., which reproduce in different Qt modules, but were introduced by particular Changes:
e6a10bc0b5c7be73c5a58f8e565c1d571723bc4a
da19c9882295a8f3216284935c05ad4b89c445bd
b4fca58fbe488e034b762fbcf04bc7334efa2c86
respectively. The only common code in that Changes is usage of Defaulted default constructor outside of class definition.
Mentioned errors were reported at Qt bugtracker (see QTBUG-62956 and QTBUG-62979), and Qt Developers believe it's a compiler bug.
Environment:
- Windows 10 x64,
- IPSXE 2017 Update 5,
- MSVC 2017 15.3.3,
- Windows SDK 10.0.15063.468,
- Qt-5.10-dev (4ad6292028fde7cba698b9c1f7d7d080772d6cd2).
Best,
Alexander