如何解决Visual Studio 2022中的LNK1104链接错误
针对你遇到的LNK1104 cannot open file 'C:\Users\...\source\repos\ont lang.obj'错误,以下是一些针对性的排查和解决方向:
处理路径中的空格:你的obj文件路径包含空格(
ont lang.obj),链接器对带空格的路径解析容易出现异常。可以尝试:- 重命名文件夹或文件,去掉空格(比如改为
ont_lang.obj) - 若必须保留空格,在链接器的相关设置中给路径加上双引号,格式如
"C:\Users\...\source\repos\ont lang.obj"
- 重命名文件夹或文件,去掉空格(比如改为
检查链接器输入设置:
右键项目 → 属性 → 链接器 → 输入 → 附加依赖项,确认是否直接添加了该obj文件。如果是,核对路径是否绝对正确,也可改用相对路径;或者将该obj文件复制到项目的输出目录(Debug/Release)下。彻底清理项目文件:
手动删除项目根目录下的Debug、Release文件夹,以及obj子文件夹,重新打开Visual Studio后执行生成解决方案操作,避免残留的旧中间文件干扰。验证文件权限:
右键目标ont lang.obj文件 → 属性 → 安全,确认当前登录用户拥有该文件的读取权限。部分杀毒软件或系统权限设置可能会限制Visual Studio访问该文件。排查文件锁定情况:
使用Process Explorer工具(微软官方工具)搜索该obj文件路径,查看是否有后台进程在占用文件——部分进程不会在任务管理器的常规列表中显示。核对项目配置一致性:
确认当前项目的平台(x86/x64)、工具集版本和之前编译正常时完全一致,切换配置可能导致链接器路径解析异常。检查重名文件冲突:
排查解决方案内其他项目或系统其他目录中是否存在同名的ont lang.obj文件,避免链接器错误加载了其他位置的文件。
内容的提问来源于stack exchange,提问作者Robert Shepherd

