【问题标题】:Will -std=c++11 compiler flag be default at some point? [duplicate]-std=c++11 编译器标志会在某些时候成为默认值吗? [复制]
【发布时间】:2014-12-01 11:31:18
【问题描述】:

如标题。它是默认的还是使用 C++11 的特性,我们总是必须添加-std=c++11

现在,由于这个选项,C++11 仍然感觉像是一些额外的、非标准的东西。

clang、g++甚至ICC都使用-std=c++11标志来指定编译器。

【问题讨论】:

  • 我认为 future.stackexchange.com 是他们持有时间机器的地方。
  • 一个好问题,但对于 GCC 邮件列表 :)
  • 指定编译器可能会有所帮助。
  • @legends2k 另外,clang 和 g++ 确实有这个标志,但可能有不同的默认策略。
  • 是的,clang 模仿 g++ 可能是出于商业原因,否则即使有不同的标志

标签: c++ c++11 compiler-flags


【解决方案1】:

使用 g++,使用-dumpspecs 生成specs 文件。 使用-print-search-dirs 第一行是放置specs 文件的位置。 在specs 文件中的适当位置添加-std=c++11 选项,在*cc1plus: 之后的行上。

【讨论】:

  • 你在规格文件中放了什么?我不断收到fatal error: specs file malformed after 2409 characters。我绑定了一些东西,例如:std=c++11-std=c++11c++11 无济于事。
  • 只需 -std=c++11 在 Windows 中与 MinGW g++ 一起使用。在Unix领域不知道,但可能相同。唯一真正的区别是路径,它们不应该被引用,反斜杠必须用反斜杠转义。
  • Thnx,现在可以使用了。不知道为什么在我输入错误之前它对我不起作用。
  • 也许您添加了额外的空白行或其他内容。空行在规格文件中很重要。在网络协议方面也是如此。
猜你喜欢
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2016-11-18
  • 2011-03-08
  • 1970-01-01
相关资源
最近更新 更多