这是我最可怕的C/C++编译器错误之一:
file.cpp(3124):致命错误C1004:找到意外的文件结尾
file.cpp包含近百个头文件,后者又包含其他头文件.它超过3000线.代码应该模块化和结构化,源文件更小.我们应该重构它.作为程序员,总会有一个改进事物的愿望清单.
但是现在,代码很乱,截止日期即将来临.在所有这些行中的某个地方 - 很可能在其中一个包含的头文件中,而不是在源文件本身中 - 显然有一个无与伦比的支撑,无法匹配的#ifdef或类似.问题是,缺少点什么时,编译器真的不能告诉我哪里它丢失了.它只知道当它到达文件的末尾时,它不是正确的解析器状态.
您能否提供一些工具或其他提示/方法来帮助我找出错误原因?
njp*_*dge 10
如果#includes都在源文件中的一个位置,您可以尝试在#includes之间放置一个迷路右括号.如果在编译时遇到"无法匹配的右括号"错误,您知道这一切都达到了平衡.这是一种缓慢的方法,但它可以帮助您查明问题.
一种方法:如果你有Notepad ++,打开所有文件(打开100个文件没问题),搜索{和}(搜索 - >查找 - >在所有打开文档中查找),记下计数差异(应为1) .随机关闭10个文件并查看计数差异是否仍为1,如果是,则继续,否则问题出在其中一个文件中.重复.