2016-09-22 1 views
0

Я пытаюсь создать собственное расширение python (3.5.2) c, которое зависит от zlib. С gcc on linux он работает отлично, но я не могу заставить его работать на Windows 64-bit.Ошибка компоновщика VS2015 с расширением python

Я установил DLL ZLIB в соответствии с инструкциями:

Installing ZLIB1.DLL 
==================== 
    Copy ZLIB1.DLL to the SYSTEM or the SYSTEM32 directory. 


Using ZLIB1.DLL with Microsoft Visual C++ 
========================================= 
    1. Install the supplied header files "zlib.h" and "zconf.h" 
     into a directory found in the INCLUDE path list. 

    2. Install the supplied library file "zdll.lib" into a 
     directory found in the LIB path list. 

    3. Add "zdll.lib" to your project. 

Мой setup.py:

from setuptools import setup, Extension 
from Cython.Build import cythonize 

setup(
    ext_modules=cythonize([Extension("esp", ["bethlib/esp.pyx", "bethlib/c_esp.c", "bethlib/linked_list.c"], libraries=["zdll"], include_dirs=["include"], library_dirs=["lib"])]), 
) 

Попытка построить с python setup.py bdist_wheel дает ошибку:

c_esp.obj : error LNK2001: unresolved external symbol uncompress 
build\lib.win-amd64-3.5\esp.cp35-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals 
error: command 'E:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120 

uncompress является действительная функция присутствует в zlib.h. Любые решения? Благодаря!

+0

В Windows вы должны построить расширение с той же версией VS, которая использовалась для создания интерпретатора Python и предположительно 'zlib.dll' (или, альтернативно, gcc). – martineau

+0

Да, VS2015 (визуальный компилятор C++ 14.0) был использован, и zlib рекомендует zlib1.dll, который я установил в соответствии с инструкциями –

+0

Вы уверены, что zlib - это версия x64? – refi64

ответ

0

Я загрузил статический zlib lib из this website, и он работает. Это для более старой версии, поэтому я по-прежнему буду признателен, если я смогу получить более актуальную версию, но пока ее достаточно.

 Смежные вопросы

  • Нет связанных вопросов^_^