【发布时间】:2015-02-14 20:44:23
【问题描述】:
我正在使用qmake 制作一个项目,我希望它易于被许多用户编译。到目前为止,我只为 Linux 和 gcc 编译器开发。我希望我的项目也可以在其他平台上编译。
到目前为止,我将编译器选项(我在 gcc 文档中找到)传递给 qmake,如下所示:
QMAKE_CXXFLAGS += -std=c++14 \
-ffloat-store \
-O3 \
但后来我意识到这些选项在其他编译器上可能无效,并尝试为其他流行的编译器找到等效选项,例如 clang 或 Intel。令我惊讶的是,我发现:
- 优化选项
-O0, -O1, -O2, -O3对所有三个编译器都是通用的。 -
-std=c++11和-std=c++14选项对 gcc 和 clang 很常见 - 据我所知,
-ffloat-store和其他一些选项仅存在于 gcc 中。
我想知道,是否有一些正式或非正式标准的选项集?
【问题讨论】:
-
到目前为止,我看到的所有 C++ 编译器的唯一编译器选项是
E选项,用于获取预处理代码。即使是所有健全的编译器都拼写为-E,而另一种编译器拼写为/E。 -
您可以将Conditionals 用于每个平台/编译器的选项。在您的三个选项中,唯一的内置 qmake 是
CONFIG += c++11 -
-D 和 -I 也是很常见的 IIRC(当然,在 Windows 上是 /D 和 /I)