Python for Windows 在调用 MinGW-w64 编译库函数时挂起
Python for Windows hang while calling a function of MinGW-w64 compiled library
我正在使用 ctypes 调用 MinGW-w64 编译库的函数。
C代码:
#include <stdio.h>
int hello()
{
printf("Hello world!\n");
return 233;
}
Python代码:
from ctypes import *
lib = CDLL("a.dll")
hello = lib.hello
hello.restype = c_int
hello()
在 MinGW-w64 中使用 gcc 编译 C 代码:
gcc tdll.c -shared -o a.dll
然后 运行 python Python 中用于 Windows 3.5.2 的代码,python 挂起 hello() 100% cpu 使用率。
然后我尝试了 运行ning Python 中的 python 代码用于 MinGW 3.4.3(从 msys2 repo 安装),没问题。
所以我的代码有什么问题?我该如何解决?
在 msys 中使用 'x86_64-w64-mingw32-gcc' 或 'i686-w64-mingw32-gcc' 而不是 'gcc'!
'gcc' 命令调用 x86_64-pc-msys-gcc。
我正在使用 ctypes 调用 MinGW-w64 编译库的函数。
C代码:
#include <stdio.h>
int hello()
{
printf("Hello world!\n");
return 233;
}
Python代码:
from ctypes import *
lib = CDLL("a.dll")
hello = lib.hello
hello.restype = c_int
hello()
在 MinGW-w64 中使用 gcc 编译 C 代码:
gcc tdll.c -shared -o a.dll
然后 运行 python Python 中用于 Windows 3.5.2 的代码,python 挂起 hello() 100% cpu 使用率。
然后我尝试了 运行ning Python 中的 python 代码用于 MinGW 3.4.3(从 msys2 repo 安装),没问题。
所以我的代码有什么问题?我该如何解决?
在 msys 中使用 'x86_64-w64-mingw32-gcc' 或 'i686-w64-mingw32-gcc' 而不是 'gcc'!
'gcc' 命令调用 x86_64-pc-msys-gcc。