Quantcast
Channel: Intel® Software - Intel® C++ Compiler
Viewing all articles
Browse latest Browse all 1175

'unresolved external symbol' error for Qt builds using ICC with PCH on Windows

$
0
0

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

 

 


Viewing all articles
Browse latest Browse all 1175

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>