Могу ли я использовать скомпилированные расширения Python MinGW вместе со скомпилированными расширениями Visual C++?
Возникли проблемы при компиляции расширения Python под Windows, я задал вопрос. Один из ответов не отвечает на мой вопрос, но его стоит задать как вопрос самостоятельно.
Учитывая скомпилированный Visual C++ дистрибутив Python под Windows, возникнут ли у меня проблемы, если я буду использовать скомпилированные расширения Visual C++ вместе со скомпилированными MinGW?
Это позволило бы мне прибегнуть к MinGW, когда это проще, чем настройка компилятора MS.
1 ответ
Это официально не поддерживается, но я думаю, что это должно работать. Python выставляет extern "C"
функции (со связью C), поэтому вы должны иметь возможность вызывать их из MSVC. Но это только сам Python. Как насчет расширений? PyMODINIT_FUNC
также имеет extern "C"
в нем, так что это позволяет также вызывать его из MSVC. Функции, которые вы передаете в Python по указателю на функцию, также должны работать, потому что они используют cdecl
соглашение о вызовах по умолчанию, но не требует связи C (или искажения имени C), потому что они вызываются указателем. Подводя итог, следует Just Work™.