Python ctypes AttributeError: function not found
Я пытаюсь совместить Python с C при помощи dll
Файл main.c
:
#include <stdio.h>
void print(char *str) {
printf("%s", str);
}
При сборке в dll никаких ошибок нет, использую clang 16.0.0 x64
и команды:
clang -c main.c -o main.o
clang -shared main.o -o main.dll
Но стоит мне запустить main.py
, как я получаю ошибку:
Traceback (most recent call last):
File "E:\main.py", line 5, in <module>
module.print('Hello!')
^^^^^^^^^^^^
File "D:\languages\python\Lib\ctypes\__init__.py", line 389, in __getattr__
func = self.__getitem__(name)
^^^^^^^^^^^^^^^^^^^^^^
File "D:\languages\python\Lib\ctypes\__init__.py", line 394, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: function 'print' not found
Файл main.py
:
import ctypes
module = ctypes.CDLL('./main.dll')
module.print('Hello!')
Использую python 3.10.4 x64
В чём проблема, и что я делаю не так?
Источник: Stack Overflow на русском