【发布时间】:2013-10-08 23:20:26
【问题描述】:
我创建了一个名为 test.c 的 c 文件,其中两个函数定义如下:
#include<stdio.h>
void hello_1(void){
printf("hello 1\n");
}
void hello_2(void){
printf("hello 2\n");
}
之后,我创建 test.pyx 如下:
import cython
cdef extern void hello_1()
安装文件如下:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(cmdclass={'buld_ext':build_ext},
ext_modules=[Extension("test",["test.pyx", "test.c"],
include_dirs=[np.get_include()],
extra_compile_args=['-g', '-fopenmp'],
extra_link_args=['-g', '-fopenmp', '-pthread'])
])
当我运行安装文件时,它总是报告 hello_1 和 hello_2 有多个定义。谁能告诉我问题所在?
【问题讨论】:
-
如果这是你的实际代码,至少有两个问题:(1) 你拼错了
Extension、build_ext,可能还有其他的东西,(2) 你我有一个名为test.c的文件,它将被test.pyx生成的文件覆盖。 -
我之前发的文件和我的不完全一样,还打了一些错别字。我已经纠正了我的问题。我这里唯一的问题是因为c文件名与cython自动生成的c文件相同。感谢您的帮助。
标签: python compiler-errors cython