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++ - 如何在 Visual Studio C++ 中创建自己的 .lib 文件

c++ - 仅当 Qt 是使用 ltcg 构建时,如何有条件地启用 ltcg?

c++ - GSOAP 将 std::string 中的 utf-8 格式错误

c++ - 错误 MSB6006 "CL.exe"在 vi​​sual studio c++ 中以代码 2 退出

windows - 如何测试 gcc 是否在 Windows 批处理文件 (cmd) 中编译程序失败?

c - 使用 execvp 传递参数

c++ - "cannot find -lQt5Core -lQt5Gui etc"使用其他不相关的库时

c++ - 如何使用库组织 QtCreator 项目

c++ - vector 不是模板?

c++ - 为什么 ios::app (append) 在 C++ 中不起作用?