所以我已经建立了一个C++类,例如class.cpp,class.h。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文件开头。
非常感谢您的帮助!