从源代码构建 pywinhook 的问题

Issues building pywinhook from source

Python 解释器: 3.7

Python 库: pywinhook https://pypi.org/project/pyWinhook/.

Objective: 向 pywinhook 库添加一些特性或函数。

构建此库的教程:此库是从 pyHook 库完成的。这就是为什么我使用以下教程来构建这个库 https://sourceforge.net/p/pyhook/wiki/PyHook_Build_Instructions/

完成的步骤:我下载了库的源代码。我安装了 MinGW 和 SWIG。我添加了需要的环境变量。

问题: 当我执行 python setup.py build -cmingw32 时,出现以下错误我无法继续这个过程。如果有人可以向我解释我应该做什么。提前致谢

执行的最后几行是:

build\temp.win-amd64-3.7\Release\pywinhook\cpyhook_wrap.o:cpyHook_wrap.c:(.text+0x1bb6): undefined reference to `_imp__PyEval_RestoreThread'
collect2.exe: error: ld returned 1 exit status
error: command 'C:\MinGW\bin\gcc.exe' failed with exit status 1

正在搜索错误:对“_imp__PyEval_RestoreThread”的未定义引用 collect2.exe:错误:ld 返回了 1 个退出状态

我知道了,可能会有帮助。

https://github.com/miniupnp/miniupnp/issues/224

经过长时间搜索并根据@Juan Botero 分享的 link,我意识到我正在用 64 位编译。解决方案如下:

  1. https://sourceforge.net/projects/mingw-w64/

    下载 MinGW-w64
  2. 在文件 cygwinccompiler.py 中添加以下语句,因为我使用的是 VB.

    的更新版本

    elif msc_ver == '1900': return['msvcr100']

  3. 我运行教程中写的指令,它有效。