【fatal error C1001: 内部编译器错误】的一个原因

编程入门 行业动态 更新时间:2024-10-20 05:39:37

【fatal error C1001: 内部<a href=https://www.elefans.com/category/jswz/34/1771241.html style=编译器错误】的一个原因"/>

【fatal error C1001: 内部编译器错误】的一个原因

平台:Windows 11、Visual Studio 2022

报错信息

已启动生成...
1>------ 已启动生成: 项目: StatisticalDistances, 配置: Debug x64 ------
1>StatisticalDistances.cpp
1>D:\Documents\StatisticalDistances.cpp(193,1): fatal  error C1001: 内部编译器错误。
1>(编译器文件“D:\a\_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\error.h”,第 1296 行)
1> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。
1>如果可以,请在此处提供重现步骤: 
1>请选择 Visual C++
1>“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息。
1>已完成生成项目“StatisticalDistances.vcxproj”的操作 - 失败。
========== 生成: 0 成功,1 失败,0 最新,0 已跳过 ==========
========= 生成 开始于 8:52,并花费了 02.358 秒 ==========

问题分析

该问题类型为内部编译器错误。

但 Visual Studio 并没有检测出代码的语法问题。

导致这个问题的原因比较多,但缺乏足够有用的信息,只能一点点检查。

问题原因

经检查代码,发现在写 Lambda 表达式的时候,函数体内没加分号 “;”。加上之后再编译就能通过了。

// vector<keyT> keys;
// for_each(histo.begin(), histo.end(), [&](pair<keyT, valueT> var) {keys.push_back(var.first) });
// 上面的 Lambda 表达式里没加分号 “;”
vector<keyT> keys;
for_each(histo.begin(), histo.end(), [&](pair<keyT, valueT> var) {keys.push_back(var.first); });

教训:写 C++ 代码的时候,注意不要被 Python 的代码习惯影响。

更多推荐

【fatal error C1001: 内部编译器错误】的一个原因

本文发布于:2023-12-03 23:36:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1659016.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:编译器   错误   原因   fatal   error

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!