4

だから私は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 ファイルの先頭にあります。

助けてくれてありがとう!

4

2 に答える 2