Связывание DLL с расширением Python, когда имя файла не совпадает с именем библиотеки - PullRequest
1 голос
/ 07 марта 2019

Можно ли изменить имя сборки библиотеки DLL после ее компиляции и компоновки? Если да, какой инструмент я должен использовать для этого? Я потерпел неудачу в поисках ответа, вероятно потому, что не знаю достаточно о предмете.

Мне предоставлены библиотеки DLL, которые я связываю с расширением Python в Windows, сгенерированным с помощью numpy.distutils и оболочек F2PY. Я использую инструменты MinGW-w64 и gfortran в качестве компилятора. DLL также были скомпилированы с помощью gfortran. Расширение прекрасно компилируется и связывается, но во время выполнения я получаю ошибку ImportError: DLL load failed: The specified module could not be found. Используя обходчик зависимостей, я смог обнаружить, что имя библиотеки на самом деле отличается от имени файла. Я могу изменить имя файла, чтобы оно соответствовало отчетам об обходе зависимостей от имени библиотеки, но имя содержит метаданные, используемые отдельным человеком для отслеживания своих проектов, например, 'MyLib-v4-фикс'. Я хотел бы изменить имя библиотеки, чтобы оно совпадало с именем файла DLL, например, «mylib.dll». Мне не были предоставлены файлы .lib или .def, но, вероятно, я мог бы создать их при необходимости.

...