首页 > 解决方案 > 当文件名与库名不匹配时将 DLL 链接到 Python 扩展

问题描述

是否可以在编译和链接后更改 DLL 的程序集名称?如果是这样,我应该使用什么工具来做到这一点?我在寻找答案时失败了,可能是因为我对这个主题不够了解。

我已经获得了 DLL,这些 DLL 链接到 Windows 上使用 numpy.distutils 和 F2PY 包装器生成的 Python 扩展。我使用 MinGW-w64 工具和 gfortran 作为编译器。DLL 也使用 gfortran 编译。该扩展程序可以很好地编译和链接,但是在运行时我收到错误 ImportError: DLL load failed: The specified module could not be found.Using dependency walker 我能够发现库名实际上与文件名不同。我可以更改文件名以匹配库名称依赖walker 报告,但名称包含个人用于跟踪其项目的元数据,例如“mylib-v4-fix”。我想修改库名称以与 DLL 的文件名一致,例如“mylib.dll”。我没有被提供 .lib 或 .def 文件,但我想我可以在必要时创建这些文件。

标签: pythonwindowsnumpygfortran

解决方案


推荐阅读