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

Compilation issues with MSVC 2013

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.2.0 Beta1
    • Fix Version/s: 5.2.0
    • Component/s: WebKit
    • Labels:
      None
    • Environment:
      Windows 8.1
      Visual Studio 2013
    • Commits:
      6533a736a7dd899280069b5d1855cfa13767341b

      Description

      Since the MS released the RTM version of Visual 2013 and Qt is reaching the 5.2 milestone I tried to build it again.

      I see a number of improvements but Qt still doesn't compile properly. I managed to get it working, though. The following is the list of changes that I made:

      1) In the file qtwebkit\Source\WTF\wtf\MathExtras.h
      in the lines 124 and 169 (as of d4a6abc1b18d65a2bd665cdda10cedd97a98c249 )
      I have added && _MSC_VER < 1800
      (apparently other similar occurrences of this issue were fixed before, for some reason this one was missed-out)

      2) Add new C++11 features that are implemented in MSVC 2013; as in https://codereview.qt-project.org/#change,65262
      Then, to workaround VC bugs:
      a) Uniform initialization doesn't work for C-style arrays: http://connect.microsoft.com/VisualStudio/feedback/details/802058/c-11-unified-initialization-fails-with-c-style-arrays
      In the file qtbase\src\corelib\plugin\quuid.h two faulty initilizer-list usages in constructors need to be ifdefed-out (lines 85 and 150)
      b) Variadic templates issue: https://connect.microsoft.com/VisualStudio/feedback/details/801828/c2143-error-when-compiling-c-code-with-variadic-templates
      In the file qtbase\src\corelib\kernel\qobject_impl.h
      Add the following near at line 102 (as of 7d7e8ae3fa79b06c916de1a7a10eed63611c5d25 )
      template <> struct ConnectionTypes<List<>, true>
      { static const int *types() { static const int t[1] =

      { 0 }

      ; return t; } };
      (possibly ifdefed only for _MSC_VER == 1800)

      Yes, I know that VC compiler bugs are external. However, since the stable compiler has been released in such state I expect Qt to provide workarounds (as described) to make the build process working.

        Attachments

        For Gerrit Dashboard: QTBUG-34705
        # Subject Branch Project Status CR V

          Activity

            People

            Assignee:
            loaden Yuchen Deng
            Reporter:
            mwu Michał Urbańczyk
            Votes:
            1 Vote for this issue
            Watchers:
            11 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes