Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Qt 5.0.0 - enable c++ 11 on Mac OSX

Qt 5.0.0 - enable c++ 11 on Mac OSX

Scheduled Pinned Locked Moved Installation and Deployment
10 Posts 2 Posters 10.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Aerius
    wrote on last edited by
    #1

    I'm trying to enable c++11 features in my Qt Creator.
    I Installed version 2.6.1 that came with the Qt 5.0.0 framework on qt-project.org. Everything's running smoothly and I created various applications up till now without problems in regard to the compiler or Qt Creator. However, if I'm trying to enable c++11, my compiler fails at the make step.

    I'm trying to set up the following in my .pro file:
    @QMAKE_CXXFLAGS += -std=gnu++0x@

    and I tried the same with
    @QMAKE_CXXFLAGS += -std=c++0x@

    The compiler however parses the pro file and on build stops compiling instantly with the following error:
    @15:57:41: The process "/usr/bin/make" exited with code 2.
    Error while building/deploying project Emerald (kit: Desktop Qt 5.0.0 clang 64bit (SDK))
    When executing step 'Make'@

    Obviously, the compiler doesn't like what I did. Any clues why that is the case?

    1 Reply Last reply
    0
    • sierdzioS Offline
      sierdzioS Offline
      sierdzio
      Moderators
      wrote on last edited by
      #2

      Which compiler version are you using? Stock Apple-GCC or MacPorts?

      (Z(:^

      1 Reply Last reply
      0
      • A Offline
        A Offline
        Aerius
        wrote on last edited by
        #3

        Clang. The Libraries and the Creator automatically used it when I installed them.

        1 Reply Last reply
        0
        • sierdzioS Offline
          sierdzioS Offline
          sierdzio
          Moderators
          wrote on last edited by
          #4

          Wrong flag, clang is probably bailing out. Use this and make sure you are using the newest Command Line Tools available:
          @
          QMAKE_CXXFLAGS += -std=c++11
          @

          More info here: "link":http://stackoverflow.com/questions/10601545/clang-3-1-and-c11-support-status.

          (Z(:^

          1 Reply Last reply
          0
          • sierdzioS Offline
            sierdzioS Offline
            sierdzio
            Moderators
            wrote on last edited by
            #5

            Btw, if you ever switch to G++ (I know it's not likely, clang is simply great), it uses the same flag from version 4.7 upwards.

            (Z(:^

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Aerius
              wrote on last edited by
              #6

              Thanks for your time so far, but I'm afraid, this didn't help. After updating XCode and the command line tools, I still get the same result - the same error. No matter if I use c++0x or c++11 as flag.

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Aerius
                wrote on last edited by
                #7

                More info:
                Changing the compiler doesn't solve the issue. Neither Clang, Nor GCC seem to acknowledge the c++11 (or 0x) flag and both throw the same error. The necessary compile output is there:

                @/.../
                cc1plus: error: unrecognized command line option "-std=c++11"
                make: *** [main.o] Error 1
                make: Leaving directory `/Users/Aerius/Documents/Qt Projects/Emerald/Emerald-build-Desktop_Qt_5_0_0_clang_64bit_SDK-Debug'
                10:57:05: The process "/usr/bin/make" exited with code 2.
                Error while building/deploying project Emerald (kit: Desktop Qt 5.0.0 clang 64bit (SDK))
                When executing step 'Make'@

                The issue is obviously this line:

                @cc1plus: error: unrecognized command line option "-std=c++11"@

                So obviously the compiler doesn't know how to use c++11, which slightly annoys me.

                However, digging deeper led me to the point where I believe my gcc version is outdated. gcc -v gives me version 4.2.1, which doesn't seem to support c++11. However that influences clang remains a mystery to me, but for now I'll try to update to a newer gcc version and see if this helps anything.

                1 Reply Last reply
                0
                • sierdzioS Offline
                  sierdzioS Offline
                  sierdzio
                  Moderators
                  wrote on last edited by
                  #8

                  Use macports to get GCC 4.7. Apple is known to keep sticking to old versions of GCC. clang remains mysterious to me, too. I've got llvm 3.2 on my machine, which should have basic C++11 support already.

                  (Z(:^

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    Aerius
                    wrote on last edited by
                    #9

                    Right, so. After updating to GCC 4.8 I finally get to compile the flag (only with gcc though, mind you - clang still doesn't work), however, from then on the compiler doesn't like the #include <initializer_list> used in QList. There's a solution to that as well, however, it includes only building for osx 10.6 or later, which basically means, I'll stop here now.

                    For future reference, if anyone has the same error: A discussion about the issue with the initializer_list can be found here: http://comments.gmane.org/gmane.comp.lib.qt.user/2206

                    And a Bugtracking record can be found here:
                    https://bugreports.qt-project.org/browse/QTBUG-28097

                    As of now, this issue is not solved.

                    Thanks for taking your time with me, sierdzio, even if - in the end - I'll just stick to not using c++ 11 for now I reckon'.

                    1 Reply Last reply
                    0
                    • sierdzioS Offline
                      sierdzioS Offline
                      sierdzio
                      Moderators
                      wrote on last edited by
                      #10

                      Pleasure, and I've learned a bit myself, too :)

                      (Z(:^

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved