LNK1104错误:Win32 Visual Studio解决方案编译失败,如何修复链接器错误?
我之前也跟这个烦人的LNK1104错误死磕过,给你整理几个按优先级尝试的解决步骤,大概率能搞定:
先确认文件是否被占用
经常碰到的情况是,之前编译出来的.exe或者中间文件.obj、.lib被其他进程锁死了——比如你测试时的程序没彻底关掉,甚至是杀毒软件在后台扫描这些文件。先打开任务管理器,找到你项目相关的进程(比如和输出文件名一致的exe)结束掉;或者直接手动删除项目的Debug/Release输出文件夹里的所有内容,再重新生成试试。检查项目的链接器路径设置
右键项目→属性→链接器→常规→附加库目录,这里的路径必须是真实存在的,别手滑写错了路径或者盘符。另外到「链接器→输入→附加依赖项」里,确认你写的那些.lib文件确实在指定的目录里,或者是系统默认能找到的位置。解决权限问题
如果你的项目放在C盘的系统目录(比如Program Files),VS可能没有足够的写入权限生成文件。要么把整个项目文件夹移到D盘这类非系统目录,要么右键Visual Studio图标,选择「以管理员身份运行」后再编译。清空VS缓存并重启
VS的缓存偶尔会抽风,试试这几步:- 完全关闭VS,找到项目目录下的
.vs隐藏文件夹(记得开显示隐藏文件),删掉它 - 打开命令提示符,运行
devenv /resetuserdata重置VS的用户数据 - 重启电脑,再重新打开项目编译
- 完全关闭VS,找到项目目录下的
排查杀毒软件拦截
不少杀毒软件会把VS刚生成的可执行文件当成可疑程序拦截,导致链接器没法完成写入。可以暂时关闭杀毒软件的实时保护,或者把项目的输出目录添加到杀毒软件的信任列表里,再重新编译试试。确认Windows SDK安装完整
虽然你换了SDK版本,但可能新版本的SDK安装不完整。打开Visual Studio Installer,选中你的VS版本→点击「修改」→切换到「单个组件」,找到你要用到的Windows SDK版本(10.0.14393.0),确认它已经勾选并安装完成;如果不确定,先卸载这个SDK再重新安装一次。
内容的提问来源于stack exchange,提问作者aweez




