2017-09-28 85 views
0

我有一个cython文件random.pyx这样的:我可以在C++中使用cython动态库编译吗?

cdef public int get_random_number(): 
    return 4 

setup.py这样的:

from distutils.core import setup 
from Cython.Build import cythonize 
from distutils.extension import Extension 

extensions = [Extension("librandom", ["random.pyx"])] 
setup(
    ext_modules = cythonize(extensions) 
) 

然后我得到一个动态库librandom.so,现在我想用这个so文件在C++,而不是蟒蛇。

#include <stdio.h> 
#include "random.h" 

int main() { 
    printf("%d\n",get_random_number()); 
    return 0; 
} 

现在我得到错误这样当我编译g++ -o main main.cpp -lrandom -L. -Wl,-rpath,"\$ORIGIN"

In file included from main.cpp:2:0: 
random.h:26:1: error: ‘PyMODINIT_FUNC’ does not name a type 
PyMODINIT_FUNC initrandom(void); 
+1

您将需要为Python库添加蟒蛇,包括和你的身材,你也可以不先innitializing它使用用Cython模块的功能。该答案填补了cython教程的空白,可能对您有所帮助:https://stackoverflow.com/a/45424720/5769463 – ead

回答

相关问题