c++ - 是否有一组标准的编译器选项?

标签 c++ gcc qmake

我正在使用qmake 制作一个项目,我希望许多用户都能轻松编译它。到目前为止,我只为 Linuxgcc 编译器开发。我希望我的项目也可以在其他平台上编译。

到目前为止,我像这样将编译器选项(我在 gcc 文档中找到的)传递给 qmake:

QMAKE_CXXFLAGS += -std=c++14 \
                  -ffloat-store \
                  -O3 \

但后来我意识到这些选项在其他编译器上可能无效,并试图为其他流行的编译器找到等效选项,例如 clangIntel。令我惊讶的是,我发现:

  1. 优化选项 -O0、-O1、-O2、-O3 对所有三个编译器都是通用的。
  2. -std=c++11-std=c++14 选项对于 gccclang 是通用的
  3. 据我所知,-ffloat-store 和其他一些选项只存在于 gcc 中。

我想知道,是否有一些正式或非正式标准的选项集?

最佳答案

POSIX 定义了一些关于 c99 的东西命令(但 AFAIK 与 C++ 无关)。

然而,qmake实用程序通常能够找出(或至少期望)什么是 C++ 编译器以及如何调用它。请注意,它正在生成一个 Makefile

在 Qt 之外,您可能会考虑 cmakeautoconf .它们都生成 Makefile-s。

另见 this answer (在 Programmers 上)。

关于c++ - 是否有一组标准的编译器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28520122/

相关文章:

c++ - 为什么我的 union 规模比我预期的要大?

c++ - 用 ifstream 读取 "*"

c - 段错误(核心转储)

c++ - 项目错误 : Unknown module(s) in QT: quick

c++ - Qt在build debug时将文件夹名中的release替换为debug

c++ - Qt 项目 qmake 构建时出错

java - 在 C++ 中使用模板检查继承

c++ - 一些编译器有趣的事情正在进行吗?

c - 打包成员地址 : Disable for specific function?

c - C 中的递归合并排序和内存分配