Visual Studio 2019中无法打开Animals.obj文件的问题求助
问题原因分析
你遇到的Error: Unable to open file D:\Animals\Animals\Debug\Animals.obj错误,根源在于你使用了/DEBUG:FASTLINK这个调试链接选项。这个选项是VS2019默认的调试模式,它不会把调试信息嵌入到可执行文件中,而是依赖编译过程中生成的.obj和.pdb文件来进行调试。一旦这些.obj文件丢失、未生成或者路径出现问题,就会触发这个文件找不到的错误(错误码0x80070002正是系统表示“文件不存在”的标准代码)。
可行的解决办法
以下是针对这个问题的具体修复步骤,按优先级排序:
重新生成整个解决方案
打开VS2019,点击顶部菜单栏的生成->重新生成解决方案。这个操作会彻底清理旧的编译产物,从头编译所有源文件,确保生成完整且最新的.obj和.pdb文件,能解决大部分因增量编译导致的文件缺失或损坏问题。切换到/DEBUG:FULL调试模式
右键你的项目 ->属性-> 展开链接器->调试,将生成调试信息的选项从/DEBUG:FASTLINK改为/DEBUG:FULL。这个模式会把调试信息嵌入到可执行文件或独立的.pdb文件中,不再依赖.obj文件,虽然编译链接速度会稍慢一些,但能彻底避免这类找不到.obj的调试错误,非常适合开发调试阶段使用。检查输出目录的权限与存在性
确认D:\Animals\Animals\Debug\这个路径确实存在,并且Visual Studio拥有该目录的读写权限。有时候杀毒软件或者系统权限限制会阻止VS生成文件,你可以尝试暂时关闭杀毒软件,或者右键VS图标选择以管理员身份运行后再重新编译。确认源文件已添加到项目
检查解决方案资源管理器,确保animal.h和Animals.cpp都已经被正确添加到项目中(不是仅仅把文件放在项目文件夹里,而是要在VS的项目结构中可见)。如果某个源文件未被包含,编译时不会生成对应的.obj文件,自然会出现找不到的错误。清理项目缓存并重新生成
先点击生成->清理解决方案,然后手动删除Debug文件夹下的所有文件,最后再重新生成解决方案。旧的缓存文件有时会干扰正常编译,彻底清理后重新生成能解决很多奇怪的编译问题。
额外代码小提示
顺便看了下你的animal.h代码,发现有个拼写错误:成员变量basesppedraise应该是basespeedraise(构造函数里也有同样的拼写问题)。虽然这个不是当前调试错误的原因,但后续可能会导致动物属性升级的逻辑问题,建议尽早修正~
内容的提问来源于stack exchange,提问作者user13993270

