だから私は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 ファイルを作成することができました。
しかし、これら 2 つを組み合わせようとすると(つまり、c++ クラスが gsl 関数を使用する cython で c++ クラスを使用する)、どうすればよいかわかりません。含める必要があると思います
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 ファイルの先頭にあります。
助けてくれてありがとう!