Cython'un "Merhaba Dünyası" ve C matematik kitaplıkları here'da bir işlev çağırma örneğinden sonra, gerçekten yapmak istediğim ayrı bir dosyada kendi C kodunun olması Cython'dan kullan.Cython: harici C dosyasından arama işlevi
sourcefiles = ['hello2_caller.pyx', 'hello2.c']
Bu hello2.c (ana o ürün testi için mevcut olmasa --- derlemek ve ayrı ayrı test etmek sadece orada olduğunu:
this ardından, setup.py dosyasını değiştirmek#import <stdio.h>
void f() {
printf("%s", "Hello world!\n");
}
int main(int argc, const char* argv[]) {
f();
return 0;
}
Bu alıyorum hello2_caller.pyx
cdef extern from "hello2.c":
void f()
cpdef myf():
f()
geçerli:
In file included from hello2_caller.c:219:
hello2.c:3: warning: function declaration isn’t a prototype
Sanırım bir şekilde bir başlık vermeyi başaramadım .. sadece setup.py 'hello2.h' gibi bir standart başlık beslemesi çalışmıyor. Beni çalışma örneğine veya yanlış yaptığımı açıklayabilir misin? Teşekkürler.
Başlığı "hello2..h": 'dan cdef extern ile belirtmeyi denediniz. AFAIK 'extern' satırı, bir C dosyasına değil, bir başlık dosyasına başvurmalıdır. –