Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-48039

FTBFS ICC on Windows (MSVC 2015 compatibility): unresolved external symbol "void __cdecl terminate(void)"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • Not Evaluated
    • None
    • 5.6.0
    • Widgets: Main Window

    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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            thiago Thiago Macieira
            thiago Thiago Macieira
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes