在Cython的“Hello World”以及在C数学库here中调用函数的示例之后,我真正想做的是在单独的文件中使用我自己的C代码并在Cython中使用它。在this之后,我修改了setup.py文件:
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'不起作用。你能指点我一个工作的例子或解释我做错了什么。感谢。