所以我用class.cpp,class.h建立了一个c++类。class.cpp 使用 gsl 中的一些函数(它有#include <gsl/gsl_blas.h>
)我没有问题将它链接到另一个 c++ 文件 main.cpp,我可以用它编译它
g++ -o main main.o class.o -I/home/gsl/include -lm -L/home/gsl/lib -lgsl -lgslcblas
此外,在不包括 class.cpp 中的 gsl 库的情况下,我设法创建了一个使用我在 class.cpp 中的类的 cython 文件,并且它可以工作。
但是,当我尝试将这两者结合起来时(即在 cython 中使用 c++ 类,其中 c++ 类使用 gsl 函数),我不知道该怎么办。我想我必须包括
I/home/gsl/include -lm -L/home/gsl/lib -lgsl -lgslcblas
在安装文件的某个地方,但我不知道在哪里或如何。我的 setup.py 看起来像
from distutils.core import setup
from Cython.Build import cythonize
import os
os.environ["CC"] = "g++"
os.environ["CXX"] = "g++"
setup(
name = "cy",
ext_modules = cythonize('cy.pyx'),
)
我有
# distutils: language = c++
# distutils: sources = class.cpp
在我的 .pyx 文件的开头。
谢谢你的帮助!