在 Qt 中添加额外的编译器选项

发布于 2024-11-19 02:40:15 字数 42 浏览 2 评论 0原文

在 Qt 中哪里可以指定额外的编译器选项?例如 -std=c++0x?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苏大泽ㄣ 2024-11-26 02:40:15

您可以尝试添加

QMAKE_CXXFLAGS += -std=c++0x

到您的 .pro 文件中。

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

CONFIG += c++11 strict_c++

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++
猥︴琐丶欲为 2024-11-26 02:40:15

在您的 .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

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
瀞厅☆埖开 2024-11-26 02:40:15

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

QMAKE_CXXFLAGS += -std=c++0x

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

The way QT deals with compiler options is through the .pro file. It is a double edged sword if I may. It creates a nice abstraction, especially when compiling large projects. The problem is that you have to either look up or memorize how to add the flag. In the case of C++0X, you have to add the following flag to your .pro file:

QMAKE_CXXFLAGS += -std=c++0x

Fortunately most of the flags that you need are automatically added if you use QtCreator.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文