Я работаю над кодом Cython, который использует некоторые структуры данных стандартной библиотеки C ++, и я могу скомпилировать код для получения файлов * .cpp.Я делаю это, используя distutils со скриптом установки (см. Код).Однако сейчас я не могу генерировать * .so файлы, и я не уверен, почему.Прежде чем мне понадобилась какая-либо структура данных C ++, сценарий установки смог сгенерировать файлы * .so и * .c.Теперь он просто генерирует * .cpp файлы, и я не могу импортировать их в остальные мои скрипты на python.
Мой скрипт установки был сделан следующим образом вместе с этой документацией: https://cython.readthedocs.io/en/latest/src/userguide/source_files_and_compilation.html
Дополнительные аргументы компиляции и языковые аргументы позволяют компилировать Cython, который включает в себя c ++
from distutils.core import setup
from Cython.Build import cythonize
from distutils.extension import Extension
import numpy
extensions=[
Extension("mesh",
sources=["optimized_mesh.pyx"],
include_dirs=[numpy.get_include()],
language="c++",
extra_compile_args=["-stdlib=libc++"])
]
setup(
ext_modules=cythonize(extensions)
)
Я ожидаю, что на выходе будут файлы * .cpp и * .so, но пока я могу толькополучить файл * .cpp.
РЕДАКТИРОВАТЬ:
Я выяснил, что происходит, первый аргумент в Extension
- это имя создаваемого файла общего объекта.Я искал общие объектные файлы с именами источников.