【问题标题】:Adding extra compiler option in Qt [duplicate]在 Qt 中添加额外的编译器选项 [重复]
【发布时间】:2011-09-30 15:20:58
【问题描述】:

我可以在 Qt 的什么地方指定额外的编译器选项?比如 -std=c++0x?

【问题讨论】:

  • 在 Qt 设计器中?网豆?您使用什么作为 IDE?
  • 您是指在qmake 文件中吗?
  • 我不知道 TS 到底是什么意思,但我想知道如何在 .pro 文件中指定编译器选项。
  • @all 对不起,我没有提到,我正在使用 QtDesigner

标签: c++ qt qt-creator


【解决方案1】:

你可以试试添加

QMAKE_CXXFLAGS += -std=c++0x

到您的 .pro 文件。

但是,这不应该在 Qt 5 中用于启用特定的 c++ 标准。相反,c++11c++14CONFIG 变量中执行此操作。它将启用 GNU 扩展 (-std=gnu++11),但如果不需要,如果您想禁用它们,还可以添加 strict_c++。例如,这应该将-std=c++11 传递给编译器:

CONFIG += c++11 strict_c++

【讨论】:

  • 如果您执行 CONFIG += c++11,此特定标志也会为您完成
【解决方案2】:

在您的 .pro 文件中,您可以添加:

QMAKE_CXXFLAGS += -std=c++0x

我认为规范的qmake.conf 中的每个变量都可以这样更改。

例如,win32-g++ 规范除其他变量外,还包含以下变量:

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

【讨论】:

【解决方案3】:

QT 处理编译器选项的方式是通过 .pro 文件。如果可以的话,这是一把双刃剑。它创建了一个很好的抽象,尤其是在编译大型项目时。问题是您必须查找或记住如何添加标志。对于 C++0X,您必须在 .pro 文件中添加以下标志:

QMAKE_CXXFLAGS += -std=c++0x

幸运的是,如果您使用 QtCreator,您需要的大部分标志都会自动添加。

【讨论】:

    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多