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);
您將需要爲Python庫添加蟒蛇,包括和你的身材,你也可以不先innitializing它使用用Cython模塊的功能。該答案填補了cython教程的空白,可能對您有所幫助:https://stackoverflow.com/a/45424720/5769463 – ead