C++ Qt - How to add "-std=c++11" to the makefile which is generated by qmake?

61,883

Solution 1

You may find it tempting to insert the specific flag (which you mention)

QMAKE_CXXFLAGS += -std=c++11

in your .pro file, but this will insert just that flag on your behalf.

That's insufficient. The right way is to insert instead

CONFIG += c++11

in your .pro file. Two or three necessary changes are then made by qmake:

  1. -std=c++11 is inserted.
  2. -stdlib=libc++ is inserted.
  3. If you're on a Mac, -mmacosx-version-min=10.6 becomes -mmacosx-version-min=10.7. (Perhaps some similar change is necessary on other OSes or OS versions.)

(A similar issue at 1 and 2.)

Solution 2

You can add the following to the Qt .pro for C++11: -

CONFIG += c++11

As of Qt 5.4, C++14 can be enabled with

CONFIG += c++14

Solution 3

You can change CXX flags :

QMAKE_CXXFLAGS += -std=c++11

I usually set it as :

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic

Solution 4

I'm using Snow Leopad 10.6.8 and gcc 4.9, I had to use

CONFIG += c++11

instead of

QMAKE_CXXFLAGS += -std=c++11

The latter was simply not recognized.

Share:
61,883
Natalia Zoń
Author by

Natalia Zoń

Updated on March 02, 2020

Comments

  • Natalia Zoń
    Natalia Zoń about 4 years

    I'm developing a program in Qt. Its makefile is generated automatically from the .pro file. I need to use some code which need the -std=c++11 flag to be set up for g++. Where in .pro should I add this flag? (changing only the Makefile won't work since it gets overwritten by the newly generated one, each time I build the project).