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的调用,出于安全,该白名单只从系统调用.
此知识与本问题无关


浙公网安备 33010602011771号