【问题标题】:How to get rid of internal compiler error: Illegal instruction min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; }如何摆脱内部编译器错误:非法指令 min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; }
【发布时间】:2015-05-18 21:05:43
【问题描述】:

我在尝试在 red hat 6 上构建程序时看到此错误

 include/c++/4.9.2/limits:1558:7: internal compiler error: Illegal instruction
    min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; }
    ^

请提交完整的错误报告, 如果合适,使用预处理的源代码。

我该如何解决这个问题?

【问题讨论】:

  • 你能更新 gcc 吗?据此:gcc.gnu.org/bugzilla/show_bug.cgi?id=59463 它已在 gcc 5.0/5.1 中修复
  • 我无法更新 gcc 版本。还有其他方法吗?
  • 然后发布触发错误的代码,也许有人可以提出解决方法。
  • 尝试减少测试用例并在g++调用中添加“-v”,你可以看到它在哪个阶段崩溃了,C++->assembler,assembler->object file,linking?如果它在 C++->assembler 上失败,您可以在该阶段停止编译器(标志“-S”)并在此处使用生成的汇编器发布原始 c++ 源代码。

标签: c++ gcc compiler-errors


【解决方案1】:

这取决于你的编译器,但是当我遇到这个问题时,我做了类似的事情:

#ifndef _MSC_VER
#define _GLIBCXX_USE_NOEXCEPT _GLIBCXX_USE_NOEXCEPT
#else
#define _GLIBCXX_USE_NOEXCEPT
#endif

很遗憾,MSVS 不支持noexcept

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2011-07-18
    • 2019-01-21
    • 2013-09-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多