Ошибка компоновщика 1120 при попытке создать расширение c ++ для python с помощью setuptools / distutils

Я нахожусь в процессе создания динамической библиотеки в C ++ (с расширением .pyd), которая связывает статическую библиотеку C ++ вместе с ней. Намерение состоит в том, чтобы импортировать библиотеку в Python и использовать ее в текущей тестовой среде, которую я имею.

Я следовал документации и использовал swig для создания файла .cxx. Затем я написал файл setup.py distutils следующим образом:

from distutils.core import setup, Extension
xy = Extension('_xy',
sources='xy_wrap.cxx','main.cpp',],
include_dirs = [r'<project>\Include',r'<project>\Source'],
library_dirs = [r'<libdir>\Release',r'C:\Python27\libs'],
libraries = ['xy ','python27'],
)

setup (name = 'xy',
version = '0.1',
author = "Rivas",
description = """The Library Interface which can be used for automation""",
ext_modules = [xy_module],
py_modules = ["xy"],
)

Я также использую VS 9.0 для компиляции исходников Python. Компиляция, кажется, проходит, но она помечает ошибку компоновщика, и все, кажется, связаны с компоновщиком, который не находит нужные файлы библиотеки (как Python, так и мои). Пример ошибок я выкладываю ниже.

    Creating library build\temp.win-amd64-2.7\Release\_xy.lib and object build\temp.win-amd64-2.7\Release\_xy.exp
PyCSPSDKLite_wrap.obj : error LNK2019: unresolved external symbol __imp__PyString_FromString referenced in function "struct _object * __cdecl SWIG_Python_str_FromChar(char const *)" (?SWIG_Python_str_FromChar@@YAPAU_object@@PBD@Z)
PyCSPSDKLite_wrap.obj : error LNK2019: unresolved external symbol __imp__PyExc_RuntimeError referenced in function "struct _object * __cdecl SWIG_Python_ErrorType(int)" (?SWIG_Python_ErrorType@@YAPAU_object@@H@Z)
PyCSPSDKLite_wrap.obj : error LNK2019: unresolved external symbol __imp__PyExc_AttributeError referenced in function "struct _object * __cdecl SWIG_Python_ErrorType(int)" (?SWIG_Python_ErrorType@@YAPAU_object@@H@Z)
...
: fatal error LNK1120: 59 unresolved externals

Я включил библиотечные каталоги, а также связанные двоичные файлы, но это все еще не решает проблему.

Может кто-то указать мне верное направление?
[Примечание: я переименовал проект в xy]

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector