zlib1.dll版本不同使得gcc运行错误,无法生成exe

windows10加载dll机制:

gcc运行需要加载as子进程,这个as子进程需要调用zlib1.dll从而实现编译.c文件,生成.exe

可是windows加载dll机制顺序是优先找windows\system32目录.如果有同名就直接加载,根本不加载你自己同目录中的zlib1.dll,造成应用程序和dll不匹配的错误.

修复方法

1+1  = 2-1

(1)要么改本地应用程序使其匹配windows\system32下的老版本dll,及改gcc

(2)要么更新windows\system32目录的zlib1.dll

(3)或者删除系统目录中的zlib1.dll,使其gcc用自己目录中的zlib1.dll

解释完毕.

 

其他相关知识

 注册表中 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 中的dll名称用于强制忽略当前目录dll的调用,出于安全,该白名单只从系统调用.

此知识与本问题无关

图片

 

posted @ 2026-08-13 12:06  緣來如此  阅读(6)  评论(0)    收藏  举报
留言板