带有python扩展的VS2015链接器错误

时间:2016-09-22 14:28:49

标签: python c zlib

我正在尝试构建我自己的依赖于zlib的python(3.5.2)c扩展。使用linux上的gcc它可以很好地工作,但我似乎无法在Windows 64位上运行它。

我按照说明安装了zlib dll:

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中的有效函数。有解决方案吗谢谢!

1 个答案:

答案 0 :(得分:0)

我从this website下载了静态zlib库,但它确实有效。这是旧版本的版本,所以如果我能获得更新的版本,我仍然感激不尽,但现在已经足够了。