在 GCC 7.3 中禁用 C++11

Soo*_*Soo 12 gcc c++ g++

似乎在 Ubuntu 18.04 中,默认提供的 g++(版本 7.3.0)默认以 C++11 兼容模式运行。我的旧代码中出现了一些与 C++11 不兼容的错误。我安装了 g++-6(版本 6.4.0)并且程序编译正常。是否可以在 g++-7 中禁用 C++11 模式?

pim*_*pim 21

尝试添加-std=gnu++98,它可能是 gcc 6.4.0 的默认设置。

例子:

g++ -std=gnu++98 hello.cpp -o hello
Run Code Online (Sandbox Code Playgroud)

  • 如果您需要 ABI 与旧 GCC 编译的代码兼容,您还需要 `-D_GLIBCXX_USE_CXX11_ABI=0` (5认同)
  • 或者`-std=gnu++03` 作为C++11 之前的最后一个标准。还值得一提的是,`-std=c++03` 将禁用一些与严格的 ISO C++ 不兼容的 GNU 扩展。 (2认同)