Details
-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
5.6.0
Description
Intel Issue ID: 6000127328.
When compiling Qt 5.5 and 5.6 with ICC 15.x/16.0 under MSVC 2015 compatibility, the linking of QtWidgets fails with the following error message:
Creating library ..\..\lib\Qt5Widgetsd.lib and object ..\..\lib\Qt5Widgetsd.exp qtoolbararealayout.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qgraphicsanchorlayout_p.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qgraphicsanchorlayout.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) moc_qmainwindowlayout_p.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qmainwindowlayout.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qtoolbar.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qtoolbarlayout.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qwidgetanimator.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qstylesheetstyle.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qdockwidget.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qdockarealayout.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) qmainwindow.obj : error LNK2001: unresolved external symbol "void __cdecl terminate(void)" (?terminate@@YAXXZ) ..\..\lib\Qt5Widgetsd.dll : fatal error LNK1120: 1 unresolved externals
I don't know why it generates calls to std::terminate in the first place (no other compiler does), but that's not the point.
The problem is that the function does not exist with decorated name. Up until MSVC 2013, it did exist in msvcrt(d).dll, but in 2015 it does not. It only exists in undecorated name.