После Cython "Hello World" и примера вызова функции в математических библиотеках C here , я действительно хочу иметь собственный код C в отдельном файле и использовать егос Cython.Следуя this , я изменяю файл setup.py:
sourcefiles = ['hello2_caller.pyx', 'hello2.c']
Это hello2.c (main просто для того, чтобы скомпилировать и протестировать его отдельно - хотя этот продукт не 't для теста:
#import <stdio.h>
void f() {
printf("%s", "Hello world!\n");
}
int main(int argc, const char* argv[]) {
f();
return 0;
}
Это hello2_caller.pyx
cdef extern from "hello2.c":
void f()
cpdef myf():
f()
Я получаю:
In file included from hello2_caller.c:219:
hello2.c:3: warning: function declaration isn’t a prototype
Итак, я не могу предоставитьзаголовок каким-то образом ... хотя просто подача setup.py стандартного заголовка, такого как 'hello2.h', не работает. Можете ли вы указать мне рабочий пример или объяснить, что я делаю неправильно. Спасибо.