Ich habe kürzlich versucht, Qt Creator 1.3.2, Qt 4.6.2 und GCC 4.4.0 (32-Bit-Version) unter Windows 7 (64-Bit) zu verwenden, um eine Anwendung mit einigen der experimentellen C ++ 0x-Erweiterungen und zu kompilieren Der folgende (schwerwiegende) Fehler ist aufgetreten:
Diese Datei erfordert Compiler- und Bibliotheksunterstützung für den kommenden ISO C ++ - Standard C ++ 0x. Diese Unterstützung ist derzeit experimentell und muss mit den Compileroptionen -std = c ++ 0x oder -std = gnu ++ 0x aktiviert werden.
Auf meiner Suche nach einer Lösung bin ich auf die Thread- Flags qmake und compiler gestoßen. und fügte der .pro-Datei Folgendes hinzu:
CXXFLAGS += -std=c++0x
aber das schien keinen Unterschied zu machen.
Ich gehe davon aus, dass ich der .pro (Projekt) -Datei ein Tag hinzufügen muss, aber ich habe noch nie mit den GCC-Compiler-Schaltern in Qt, QMake und QtCreator herumgespielt, und ich bin mir nicht sicher, ob der Aufruf / die Beschwörung richtig ist . Meine Frage ist also, wie Sie GCC-Compiler-Schalter einstellen, wenn Sie QtCreator, QMake und Qt verwenden.
quelle
QMAKE_CXXFLAGS+=...
kann auch als zusätzliches Argument in der Build-Konfiguration (dh der Befehlszeile) angegeben werden.Du solltest benutzen
CONFIG += c++11
um C ++ 11-Compiler-Flags automatisch zu aktivieren.
Suchen Sie
.prf
in Ihrer qt-Installation nach Dateien. Ich weiß nicht, wo sie sich unter Windows befinden, aber unter meiner Linux-Installation befinden sie sich unter/opt/Qt/5.4/gcc_64/mkspecs/features
.Vielleicht möchten Sie die qmake-Dokumentation dazu lesen :
Sie können Ihre eigenen Funktionen hinzufügen .
Folgendes habe ich auf meinem System gefunden. CONFIG + = Name aktiviert die Funktion:
./android/android_deployment_settings.prf ./android/android.prf ./build_pass.prf ./c++11.prf ./c++14.prf ./cmake_functions.prf ./configure.prf ./create_cmake.prf ./ctest_testcase_common.prf ./ctest_testcase_installed.prf ./ctest_testcase.prf ./dbusadaptors.prf ./dbusinterfaces.prf ./declarative_debug.prf ./default_post.prf ./default_pre.prf ./designer_defines.prf ./device_config.prf ./egl.prf ./exceptions_off.prf ./exceptions.prf ./exclusive_builds_post.prf ./exclusive_builds.prf ./gcov.prf ./include_source_dir.prf ./incredibuild_xge.prf ./java.prf ./lex.prf ./link_ltcg.prf ./link_pkgconfig.prf ./ltcg.prf ./mac/default_post.prf ./mac/default_pre.prf ./mac/objective_c.prf ./mac/rez.prf ./mac/sdk.prf ./moc.prf ./no_debug_info.prf ./precompile_header.prf ./qfeatures.prf ./qlalr.prf ./qml1_module.prf ./qml1_plugin.prf ./qml_debug.prf ./qml_module.prf ./qml_plugin.prf ./qmltestcase.prf ./qpa/basicunixfontdatabase.prf ./qpa/genericunixfontdatabase.prf ./qt_android_deps.prf ./qt_app.prf ./qt_build_config.prf ./qt_build_paths.prf ./qt_common.prf ./qt_config.prf ./qt_docs.prf ./qt_docs_targets.prf ./qt_example_installs.prf ./qt_functions.prf ./qt_headersclean.prf ./qt_helper_lib.prf ./qt_installs.prf ./qt_module_headers.prf ./qt_module.prf ./qt_module_pris.prf ./qt_parts.prf ./qt_plugin.prf ./qt.prf ./qt_targets.prf ./qt_tool.prf ./resolve_config.prf ./resolve_target.prf ./resources.prf ./silent.prf ./simd.prf ./spec_post.prf ./spec_pre.prf ./testcase.prf ./testcase_targets.prf ./testcocoon.prf ./testlib_defines.prf ./uic.prf ./unix/bsymbolic_functions.prf ./unix/dylib.prf ./unix/hide_symbols.prf ./unix/largefile.prf ./unix/opengl.prf ./unix/openvg.prf ./unix/separate_debug_info.prf ./unix/thread.prf ./unix/x11inc.prf ./unix/x11lib.prf ./unix/x11.prf ./unix/x11sm.prf ./use_c_linker.prf ./vxworks.prf ./warn_off.prf ./warn_on.prf ./wayland-scanner.prf ./win32/console.prf ./win32/default_pre.prf ./win32/dumpcpp.prf ./win32/idcidl.prf ./win32/msvc_mp.prf ./win32/opengl.prf ./win32/openvg.prf ./win32/qt_config.prf ./win32/qt_dll.prf ./win32/rtti_off.prf ./win32/rtti.prf ./win32/stl_off.prf ./win32/stl.prf ./win32/windeployqt.prf ./win32/windows.prf ./winrt/console.prf ./winrt/font_deployment.prf ./winrt/package_manifest.prf ./yacc.prf
quelle
Der einzige Weg, der wirklich für mich funktioniert, ist es hinzuzufügen
QMAKE_CXXFLAGS
.Der Befehl
CONFIG += c++11
wird nicht-std=c++11
zum Kompilierungsbefehl hinzugefügt .quelle
CONFIG += c++11
ist die richtige Lösung für qtcreator 3.X + (veröffentlicht im Jahr 2012).