【问题标题】:unrecognized command line option "-std=c++11" for GCC 4.8.1GCC 4.8.1 无法识别的命令行选项“-std=c++11”
【发布时间】:2014-03-01 20:58:14
【问题描述】:

在网上看了很多文献后,似乎最近的GCC版本肯定支持-std=c++11命令行选项。但出于某种疯狂的原因,即使使用 GCC 4.8.1,我也会得到“无法识别的命令行选项”,这没有任何意义。

C:\newmingw\mingw32\bin>g++ -v
Using built-in specs.
COLLECT_GCC=g++
Target: i686-w64-mingw32
Configured with: [trimmed]
Thread model: win32
gcc version 4.8.1 (rev5, Built by MinGW-W64 project)

C:\newmingw\mingw32\bin>g++ -std=c++11 test.cpp
cc1plus: error: unrecognized command line option "-std=c++11"

这里还有什么需要做的吗?蒂亚!

【问题讨论】:

  • 您可以尝试编译一些不带标志的 C++ 11 代码。至少有一些 MinGW 构建默认启用了std=c++11 标志,所以你不必明确地这样做。
  • 您是否在旧版本上解压了新版本?核对整个东西并新鲜打开包装,应该没问题。如果没有,请报告错误,因为他们打包了错误的 cc1plus 或其他东西。
  • 考虑购买新发行版?也许是 mingw-builds 的一个。
  • 嗯,这是一个微不足道的建议,但文档对这个选项有什么看法? -std=c++0x呢?
  • 我在 windows 和 c++11 上遇到了 mingw 的奇怪问题,只是说。我很快逃回了 linux,我可以愉快地从那里交叉编译。

标签: c++11 mingw-w64


【解决方案1】:

我正在使用通过 http://www.mingw.org/wiki/Getting_Started 的 mingw-get 获得的 mingw
我可以确认您的问题。可能与您的 x64 版本有关?

我的版本输出几乎相同:

C:\>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
Target: mingw32
Configured with: [...]
Thread model: win32
gcc version 4.8.1 (GCC)

我目前正在将它用于一个使用许多新 c++11 功能的大型项目。

【讨论】:

    猜你喜欢
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2017-01-22
    • 2015-02-05
    • 2012-09-04
    • 2017-04-09
    相关资源
    最近更新 更多