用于Windows的Python在调用MinGW-w64编译库的函数时挂起

时间:2016-09-16 02:50:43

标签: python c mingw ctypes msys

我正在使用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 for Windows 3.5.2中运行python代码,python在 hello()上挂起,使用率为100%。
然后我尝试在Python中为MinGW 3.4.3运行python代码(从msys2 repo安装),这没问题。

那我的代码出了什么问题?我该如何解决它?

1 个答案:

答案 0 :(得分:0)

使用&#39; x86_64-w64-mingw32-gcc&#39;或&#39; i686-w64-mingw32-gcc&#39;而不是&#39; gcc&#39;在msys!

&#39; gcc&#39;命令调用x86_64-pc-msys-gcc。