VS2013编译旧项目报LNK1181无法打开stage.obj错误如何解决
问题解决指南
核心原因说明
该LNK1181报错和Boost编译结果无关,问题出在旧项目的VS配置异常:项目链接器误将C:\boost_1_77_0\stage文件夹路径识别为了需要链接的stage.obj目标文件,VS2003对这类异常配置的容错度更高,所以没有触发报错。
可用解决方法
方法1:修正链接器配置(最优方案)
直接删除错误的配置项即可永久解决问题:
- 右键项目名称点击「属性」,进入配置面板
- 依次展开「配置属性」→「链接器」→「输入」
- 检查「附加依赖项」列表,找到
C:\boost_1_77_0\stage这条错误配置,删除后保存重新编译即可 - 如果未找到对应配置,再检查「链接器」→「常规」下的「附加库目录」,确认Boost相关路径末尾有没有多余空格、换行符或者错误分隔符,导致路径被VS错误解析为目标文件
方法2:临时兼容方案
如果暂时不想修改项目配置,可以用两种方式临时规避报错:
- 生成空白占位文件:新建一个内容为空的cpp文件,单独编译得到.obj文件后重命名为
stage.obj,放到C:\boost_1_77_0\路径下,再编译项目即可通过 - 检查代码硬编码引用:搜索全项目代码中是否有
#pragma comment(lib, "C:\\boost_1_77_0\\stage")这类硬编码的链接指令,注释掉对应代码即可
内容的提问来源于stack exchange,提问作者Neha
相关产品推荐
相关产品推荐

