7
功能用Cython的「Hello World」的經過,並呼籲在C數學庫here函數的例子,我真正想要做的是有我自己的C代碼在一個單獨的文件從Cython使用它。繼this,我修改setup.py文件:用Cython:調用外部C文件
sourcefiles = ['hello2_caller.pyx', 'hello2.c']
這是hello2.c(主要是就在那裏編譯和單獨測試---雖然該產品是不存在的測試:
#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'不起作用。你能指點我一個有效的例子,或者解釋我做錯了什麼。謝謝。
你是否嘗試用`hello2..h「的`cdef extern指定頭部:`。 AFAIK'extern`行不應該引用C文件,而是引用頭文件。 – 2014-12-14 17:20:50