我一直在尝试遵循http://docs.cython.org/src/userguide/external_C_code.html中列出的使用c的cython声明的例子,特别是这样的:“通过使用public关键字声明cython模块中定义的c类型、变量和函数,可以让与该模块链接的c代码访问它们。”
在集成.pyx公司名称:
cdef public double f(double x):
return x**2-x
cdef public double integrate_f(double a, double b, int N):
cdef int i
cdef double s, dx
s = 0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
def g(a, b, N):
return integrate_f(a, b, N)
在用python.exe setup.py build_ext --inplace --compiler=msvc
构建了.c、.pyd、.h、.obj、.lib、.exp之后,我能够成功地从python导入并运行integrate.g()
。但是,我的新目标是在VS2015的开发人员命令提示符下调用f(double x)
和{
按照上面链接的说明,我创建了一个integrate_main.c文件:
^{pr2}$现在把它整合起来,集成.pyd,积分。h,集成.obj, 集成.lib, 积分.exp坐在同一个目录里。我试图用cl integrate_main.c
编译integrate\u main.c,但得到以下语法错误:
...\integrate.h(15): error C2061: syntax error: identifier 'f'
...\integrate.h(15): error C2059: syntax error: ';'
...\integrate.h(15): error C2059: syntax error: '<parameter-list>'
...\integrate.h(16): error C2061: syntax error: identifier 'integrate_f'
...\integrate.h(16): error C2059: syntax error: ';'
...\integrate.h(16): error C2059: syntax error: '<parameter-list>'
我不明白当cython成功地创建了一个.obj和一个importable.pyd时integrate.c怎么会出现语法错误。在
目前没有回答
相关问题 更多 >
编程相关推荐