MinGW编译C项目提示ld returned 1 exit status错误求助
错误核心原因
从构建日志可以明确,编译环节已经正常完成,问题出在最终的可执行文件生成阶段:链接器ld尝试写入输出文件basics1.exe时被系统拒绝了权限,导致构建失败。
对应的排查解决方法
- 正在运行的程序锁定文件:这是最常见的原因。如果你之前运行过编译好的
basics1.exe,且程序没有正常退出(比如控制台窗口没关、程序在后台卡住),Windows会默认锁定正在运行的可执行文件,禁止写入覆盖。直接打开任务管理器,找到basics1.exe进程结束后重新构建即可。 - 文件夹权限不足:如果项目放在系统盘的受保护目录(比如
Program Files、需要管理员权限的桌面目录),或者文件夹被设置为只读属性,会导致写入失败。可以右键点击项目文件夹,在属性中取消只读勾选,或者将项目迁移到非系统盘的普通目录下重新构建。 - 安全软件拦截:杀毒软件、Windows Defender等安全工具的实时扫描功能,可能会临时锁定新生成的可执行文件进行扫描,导致链接器写入失败。可以将项目目录加入安全软件的白名单,临时关闭实时防护验证问题。
- IDE句柄未释放:如果使用IDE(如Eclipse CDT、Dev C++)进行构建,偶发IDE持有文件句柄未释放的问题,直接重启IDE后再尝试构建即可。
内容的提问来源于stack exchange,提问作者Samanue Santhosh
相关产品推荐
相关产品推荐

