Обернуть C ++ DLL с Cython - PullRequest
       14

Обернуть C ++ DLL с Cython

0 голосов
/ 25 сентября 2019

Я пытаюсь создать некоторый код на Cython, чтобы обернуть некоторые классы, предоставляемые .dll. Каждый раз, когда я пытаюсь построить код, он не может найти заголовки моих классов.Все мои файлы находятся в одном каталоге, который включает в себя: LIB.dll LIB.lib setup.py LIB.pxd lib_wrapper.pyx

Мой файл setup.py выглядит следующим образом:

    from setuptools import setup
    from distutils.extension import Extension
    from Cython.Build import cythonize

    # from dll
    ext_modules = [
        Extension(
            name="project",
            sources=['lib_wrapper.pyx'],
            language="c++",
            libraries = ['LIB'],
            library_dirs = [r'C:\project']
        ),
    ]

    setup(
        ext_modules=cythonize(ext_modules)
    ) 

Мой .pxd:

    cdef extern from "LIB.hpp":
    # class details

Исходный код .dll имеет следующую структуру: LIB / include / LIB.hpp LIB / base / LIB.cpp Iя пробовал все варианты этих путей в pxd extern from path.

При сборке я получаю следующее:

    python setup.py build_ext --inplace
    Compiling lib_wrapper.pyx because it depends on .\LIB.pxd.
    [1/1] Cythonizing lib_wrapper.pyx
    C:\project\cy_env\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for
now (Py2). This will change in a later release! File:
C:\project\lib_wrapper.pyx tree = Parsing.p_module(s, pxd,
full_module_name)
    running build_ext
    building 'project' extension
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\project\cy_env\include -IC:\Users\user\AppData\Local\Programs\Python\Python35\include -IC:\Users\user\AppData\Local\Programs\Python\Python35\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE"
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt"
"-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um"
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared"
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um"
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt"
-IC:\local\boost_1_69_0_vc141 /EHsc /Tplib_wrapper.cpp /Fobuild\temp.win-amd64-3.5\Release\lib_wrapper.obj
    lib_wrapper.cpp
    lib_wrapper.cpp(634): fatal error C1083: Cannot open include file: 'LIB.hpp': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2 ```
...