Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding extra compiler option in Qt [duplicate]

Tags:

c++

qt

qt-creator

Where in Qt can I specify additional compiler options? Like for example -std=c++0x?

like image 943
smallB Avatar asked Jul 07 '11 16:07

smallB


People also ask

How do I add a compiler to QT?

You specify the compiler to use for each kit in Edit > Preferences > Kits. To add a C or C++ compiler, select Edit > Preferences > Kits > Compilers > Add. Select a compiler in the list, and then select C or C++. To clone the selected compiler, select Clone.

Does Qt support C ++ 11?

Yet, according to this article this version of Qt Creator supports C++11. So how do I enable it? Qt Creator is not a compiler. When you read that "Qt Creator supports C++11" it means that the code-completion engine (Clang in this case) supports C++11 syntax.

What compiler does Qt Creator use?

Qt Creator uses the C++ compiler from the GNU Compiler Collection on Linux. On Windows it can use MinGW or MSVC with the default install and can also use Microsoft Console Debugger when compiled from source code. Clang is also supported.

Does Qt support C++ 17?

As mentioned, Qt 6 makes C++17 a requirement in order to adopt its more advanced language features.


2 Answers

You can try adding

QMAKE_CXXFLAGS += -std=c++0x 

to your .pro file.

However, this should not be used in Qt 5 for enabling specific c++ standard. Instead, c++11 or c++14 in CONFIG variable to do that. It will enable GNU extensions (-std=gnu++11), but if that is unwanted, also add strict_c++ if you want to disable those. For example, this should pass -std=c++11 to the compiler:

CONFIG += c++11 strict_c++ 
like image 144
Dotti Avatar answered Sep 24 '22 02:09

Dotti


In your .pro file, you could add:

QMAKE_CXXFLAGS += -std=c++0x 

I think every variable in the spec's qmake.conf can be altered like that.

For example, the win32-g++ spec has, among other variables, these:

QMAKE_CC        = gcc QMAKE_LEX       = flex QMAKE_LEXFLAGS      = QMAKE_YACC      = byacc QMAKE_YACCFLAGS     = -d QMAKE_CFLAGS        = QMAKE_CFLAGS_DEPS   = -M QMAKE_CFLAGS_WARN_ON    = -Wall QMAKE_CFLAGS_WARN_OFF   = -w QMAKE_CFLAGS_RELEASE    = -O2 QMAKE_CFLAGS_DEBUG  = -g QMAKE_CFLAGS_YACC   = -Wno-unused -Wno-parentheses  QMAKE_CXX       = g++ QMAKE_CXXFLAGS      = $$QMAKE_CFLAGS QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD QMAKE_CXXFLAGS_RTTI_ON  = -frtti QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions 
like image 38
Vinicius Kamakura Avatar answered Sep 22 '22 02:09

Vinicius Kamakura