我创建了一个名为test.c的c文件,并定义了两个函数,如下所示:
安装文件如下:
当我运行安装文件时,它总是报告hello_1和hello_2有多个定义。有人能告诉我问题出在哪里吗?
#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有多个定义。有人能告诉我问题出在哪里吗?
Extension
、build_ext
,可能还有其他东西,(2)你有一个名为test.c
的文件将被从test.pyx
生成的文件覆盖。 - abarnert