DLL“丢失”但存在于路径中

问题描述

我正在更新构建机器(从Windows Server 2008到Windows 10),我们需要同时支持Python 2和python3。我们正在使用SWIG为我们的C ++代码生成Python绑定。作为此过程的一部分,我们将生成仅C ++的DLL(mylib_shared.dll,直接使用Clang生成)和特定于python版本的dll(_mylib.dll,由swig生成)。

当前在python 2.7中构建良好,但是对于python 3,当我尝试使用SWIG绑定从_mylib.dll导入函数时,出现错误提示缺少共享的dll。无论运行哪个版本的Python,该文件都是相同的,并且在预期的位置上肯定存在该文件,并且该目录在PATH变量中(我已经非常仔细地检查过)。我已经使用Dependenciesdumpbin来检查它在寻找什么,我唯一看到的区别是python38.dll(显然是由Python 3版本而不是Python 2版本导入的)具有对ws2_32.dll(存在于C:\ Windows \ SysWOW64中)的依赖关系,而不是等效的Python 2 dll的依赖关系。那表示它缺少api-ms-win-core-string-obsolete-l1-1-0.dll,但是我认为这是一个红色鲱鱼-似乎是与实现有关的事情(请参阅https://answers.microsoft.com/en-us/windows/forum/windows_10-files/missing-api-ms-win-core-dlls/d99d1368-0f92-43db-bbdb-7d080f1f96e9) 。我已经通过使用dumpbin加载dll来检查是否为正确的体系结构(32位)构建了所有东西。

所以我很困惑。我以前在混合体系结构上遇到问题,导致了类似的问题,但我解决了这个问题,正如我所说,我现在正在直接检查正在构建的dll,所以我看不到是这样(也是您希望它能够对于两个版本的Python都是一个问题)。该文件肯定在那里。我不知道还有什么会导致Windows声称找不到dll。感谢您的任何帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)