从Avira隔离区恢复.exe文件后出现LNK1104且无法删除该文件
解决Visual Studio LNK1104错误及无法删除被安全软件隔离过的exe文件问题
问题背景
- 为作业创建名为“HW3 Q2 cmp”的Visual Studio C++项目,最初因vector大小设置错误多次编译失败
- Avira安全软件将项目exe移入隔离区,恢复后出现LNK1104链接错误:
严重性 代码 描述 项目 文件 行 抑制状态
错误 LNK1104 无法打开文件“C:\Users\Pun Wing Hon\Desktop\Cityu\Year Three\EE2331 data struct\HW3 Q2 cmp\x64\Debug\HW3 Q2 cmp.exe” HW3 Q2 cmp C:\Users\Pun Wing Hon\Desktop\Cityu\Year Three\EE2331 data struct\HW3 Q2 cmp\HW3 Q2 cmp\LINK 1
- 代码已通过在线GDB修复并在其他VS项目测试正常,但原项目仍报LNK1104错误
- 无法手动删除目标exe文件,管理员权限、切换本地账户均无效,任务管理器无相关进程
解决方案
一、修复LNK1104链接错误
清理项目缓存
- 关闭Visual Studio,手动删除项目目录下的
Debug/Release文件夹、.vs隐藏文件夹、ipch文件夹 - 重新打开项目,执行
生成->清理解决方案,再点击生成解决方案
- 关闭Visual Studio,手动删除项目目录下的
解除安全软件拦截
- 打开Avira隔离区,确认目标exe已完全恢复,将项目的Debug目录添加到Avira信任列表
- 暂时关闭Avira实时防护,再尝试编译项目
修改输出路径
- 右键项目→
属性→链接器→常规,修改输出文件路径到未被安全软件监控的目录(如D盘新建文件夹),重新编译
- 右键项目→
二、强制删除无法删除的exe文件
命令行强制删除
- 以管理员身份打开CMD,执行删除命令:
del /f /s /q "C:\Users\Pun Wing Hon\Desktop\Cityu\Year Three\EE2331 data struct\HW3 Q2 cmp\x64\Debug\HW3 Q2 cmp.exe" - 若提示文件被占用,先强制结束关联进程:
再执行删除命令taskkill /f /im "HW3 Q2 cmp.exe"
- 以管理员身份打开CMD,执行删除命令:
安全模式删除
- 重启电脑进入安全模式(Windows 10/11:设置→更新和安全→恢复→高级启动→立即重启,依次选择疑难解答→高级选项→启动设置→重启,选择带网络的安全模式)
- 在安全模式下直接删除目标exe文件
用资源监视器解锁
- 打开任务管理器→
性能→打开资源监视器,在关联的句柄搜索框输入exe文件名,找到关联进程后结束,再删除文件
- 打开任务管理器→
内容的提问来源于stack exchange,提问作者Harry Pun
相关产品推荐
相关产品推荐

