DLL“缺失”,但存在于路径中

2024-10-05 10:40:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在更新我们的构建机器(从WindowsServer2008到Windows10),我们需要同时支持Python2和Python3。我们正在使用SWIG为C++代码生成Python绑定。作为其中的一部分,我们生成C++ + DLL(MyLiBySald.DLL,直接使用CLAN构建)和Python版本特定的DLL(Y-MyLIB DLL,由SWIG构建)。p>

在Python2.7中,构建目前还可以,但是在Python3中,当我尝试使用SWIG绑定从_mylib.dll导入函数时,会收到一个错误,表示缺少共享dll。无论运行哪个版本的Python,该文件都是相同的,并且肯定存在于预期的位置,并且该目录位于PATH变量中(我已经非常仔细地检查过)。我使用了Dependenciesdumpbin来检查它在寻找什么,我能看到的唯一区别是Python38.dll(显然是由python3版本导入的,但不是python2版本)对ws2_32.dll(存在于C:\Windows\SysWOW64中)有依赖关系,而不是对等效的python2dll的依赖关系。这意味着它缺少api-ms-win-core-string-Observe-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。感谢您的帮助


Tags: 文件core版本api关系windows体系结构win

热门问题