首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Qt、QtCreator、QMake中配置GCC编译器开关

在Qt、QtCreator、QMake中配置GCC编译器开关
EN

Stack Overflow用户
提问于 2010-06-07 12:23:51
回答 3查看 79.8K关注 0票数 74

我最近尝试在Windows7(64位)上使用Qt Creator 1.3.2、Qt 4.6.2和GCC 4.4.0 (32位版本)来编译使用一些实验性C++0x扩展的应用程序,但遇到了以下(致命)错误:

此文件需要对即将推出的ISO C++标准C++0x的编译器和库支持。这种支持目前还处于实验阶段,必须使用-std=c++0x或-std=gnu++0x编译器选项来启用。

在寻找解决方案的过程中,我遇到了线程,并在.pro文件中添加了以下内容:

CXXFLAGS += -std=c++0x

但这似乎并没有起到什么作用。

因此,我希望有一些标记需要添加到.pro (项目)文件中,但我以前从未在Qt、QMake和QtCreator中处理过GCC编译器开关,并且我不确定正确的调用/咒语。那么,我的问题是,在使用QtCreator、QMake和Qt时,您如何设置GCC的编译器开关?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-15 11:04:21

归根结底就是读取manual。您需要使用QMAKE_CXXFLAGS,而不是在.pro文件中使用CXXFLAGS,如下所示:

main.cpp:

#include <cinttypes>

int main() { return 0; }

main.pro:

SOURCES += main.cpp
QMAKE_CXXFLAGS += -std=c++0x
票数 104
EN

Stack Overflow用户

发布于 2015-11-23 04:06:34

你应该使用

CONFIG += c++11

自动启用C++11编译器标志。

在qt安装中查找.prf文件。我不知道它们可能在windows上的什么位置,但在我的Linux安装中,它们在/opt/Qt/5.4/gcc_64/mkspecs/features下。

您可能需要阅读qmake documentation中的内容:

可以使用在功能(.prf)文件中指定的额外配置功能来设置

qmake。这些额外的功能通常为构建过程中使用的自定义工具提供支持。要将功能添加到构建过程中,请将功能名称(功能文件名的主干)附加到配置变量。

你可以使用add your own features

这是我在我的系统上找到的东西。CONFIG += name将启用该功能:

./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
票数 6
EN

Stack Overflow用户

发布于 2016-03-23 02:38:46

真正对我有效的唯一方法是将其添加到QMAKE_CXXFLAGS中。

CONFIG += c++11 不会将 -std=c++11添加到编译命令。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2987062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档