解决了一个奇怪的找不到EVP_aes_128_ctr的错误
最近Git一直不正常,而且其他一些软件也似乎不正常,这个错误还非常的隐蔽,我费了好大的劲,还是靠运气才找到了毛病的所在。
When using Git, if you get a “can’t find EVP_aes_128_ctr in libssh2-1.dll” error, check whether your system has a libeay32.dll file. It may be in PATH, or it may exist in C:/Windows/System32/. Find it, and rename it, and recheck.
问题描述
在使用git clone时,如果仓库是HTTPS协议的,会失败,而且很多时候没有错误提示,只有在Windows的命令提示符(cmd)里运行才会出现,错误信息类似这样
git-remote-ftp.exe - 无法找到入口
无法定位程序输入点 EVP_aes_128_ctr 于动态链接库 C:\msys64\mingw64\bin\libssh2-1.dll 上。
分析和尝试
看起来问题好像是这个DLL缺少这个函数。不管三七二十一,我首先尝试的是对涉及到的包降级,无效。又参考网上给出的复制DLL的方法,无效。
折腾了很久都不行,还是靠搜索,根据这个日志,我使用的mingw-w64-x86_64-libssh2包应该是支持AES-128-ctr的,因为checking for EVP_aes_128_ctr... yes
。
又搜索了一下,发现一个日本朋友的blog里提到了系统中存在的libeay32.dll会干扰git运行(这点我是靠谷歌翻译理解的)。于是顺手用whereis
命令查了一下,发现不得了
1 | whereis libeay32.dll |
系统里竟然还有一个libeay32.dll
。
文件来自何处看涂色的部分就知道了。工商银行食屎啦!
解决方法
重命名那个倒霉的文件,好了。
心得
-
垃圾工商银行,浪费我时间!
-
广泛的搜索,多尝试几种解决方法,不要想当然。
-
系统是很复杂的,看似和问题无关的软件可能会造成干扰。
-
远离国产软件告别没完没了的错误。
或者您可以把评论发在别处,添加指向本页的连接,然后把网址告诉我:
本文标题:解决了一个奇怪的找不到EVP_aes_128_ctr的错误
文章作者:Chris
发布时间:2017-03-05
最后更新:2022-03-23
原始链接:https://chriszheng.science/2017/03/05/Strange-EVP-aes-128-ctr-error/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享