You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用C函数遇WinError 193错误,求解决方案

解决Windows下Python调用C库出现的WinError 193错误

错误原因

你用gcc编译生成了Linux/macOS平台的.so共享库,但Windows系统仅支持.dll格式的动态链接库,这就是触发OSError: [WinError 193]的核心原因。

解决步骤

1. 重新编译C文件生成Windows兼容的动态链接库

替换原编译命令为Windows平台的编译指令:

gcc -shared -o func.dll func.c

说明:Windows下不需要-fPIC参数(该参数是Linux平台生成位置无关代码用的),直接用-shared指定生成共享库,输出后缀改为.dll即可。

2. 修改Python代码中的库文件路径

将Python代码里的.so路径替换为新生成的.dll路径,同时建议显式声明函数参数和返回值类型避免调用异常:

import ctypes
from ctypes import *

# 替换为你的dll文件实际路径
clibrary = ctypes.CDLL(r"C:\Users\Desktop\func.dll")
# 显式指定函数参数类型和返回值类型
clibrary.display.argtypes = [c_char_p, c_int]
clibrary.display.restype = c_int

clibrary.display(b"hi", 22)

3. 额外注意事项

  • 确保Python和gcc的位数匹配:如果你的Python是64位,必须使用64位的MinGW gcc编译;若Python是32位,对应使用32位gcc,否则会出现位数不匹配的类似错误。
  • 如果编译时提示头文件找不到,检查MinGW的环境变量是否配置正确,或者直接使用MinGW的完整路径执行编译命令。

内容的提问来源于stack exchange,提问作者user22872177

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:57:11