如何找到我的 GCC 编译器支持的标准?我不是说如何在编译时找出正在使用的 C++ 标准(检查定义的常量),而是在编译之前,如何检查可用的标准以使用(即标志 -std=c++??
) ?
man g++
中不存在该信息。
除了手动尝试选项之外,我还可以通过 g++ --version
检查我的 GCC 版本?
是否可以在某处找到 GCC 版本和支持的标准表?
原文由 Šimon Hrabec 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何找到我的 GCC 编译器支持的标准?我不是说如何在编译时找出正在使用的 C++ 标准(检查定义的常量),而是在编译之前,如何检查可用的标准以使用(即标志 -std=c++??
) ?
man g++
中不存在该信息。
除了手动尝试选项之外,我还可以通过 g++ --version
检查我的 GCC 版本?
是否可以在某处找到 GCC 版本和支持的标准表?
原文由 Šimon Hrabec 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
因此,经过一番努力,试图清除我的
sed
技能,我想出了这个命令:它处理
g++ -v --help
的输出(将其打印到stderr
的额外信息静音),匹配以-std=
开头的行,然后捕获这些值。^<
是屏蔽帮助的-std=<standard>
行。以下是 GCC 9 的一些示例输出:您可以在中间添加一个
grep
根据帮助描述文本进行过滤,这在帮助输出中很方便。例如,如果您想删除已弃用的:如果您只想列出未弃用的 C++:
如果您只想列出未弃用的 C:
这些非常老套,并且依赖于每个标准名称的帮助描述中出现的“已弃用”、“C++”和/或“C”(注意
grep "C "
末尾的空格),但它们似乎工作。您可以类似地过滤掉例如“相同”以摆脱同义词等。