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

Windows下用ctypes加载C++库遇WinError193错误求助

问题分析与解决

核心原因

你遇到的OSError: [WinError 193]错误,本质是Windows系统无法识别Linux/macOS格式的共享库文件:

  • .so是类Unix系统(Linux、macOS)的动态共享库后缀,Windows平台对应的动态链接库后缀是.dll
  • 你使用的编译命令g++ -fPIC -shared -o main00.so main00.cpp是针对类Unix系统的,生成的文件不符合Windows的加载规范

解决步骤

1. 重新编译生成Windows兼容的.dll文件

如果你使用的是MinGW环境的g++,执行以下编译命令(去掉类Unix系统需要的-fPIC参数,输出后缀改为.dll):

g++ -shared -o main00.dll main00.cpp

2. 修改Python代码加载正确的库文件

将Python代码中的main00.so替换为main00.dll:

import ctypes   
cf = ctypes.CDLL(r"main00.dll")

3. 验证函数调用(可选)

添加测试代码确认函数正常工作:

# 调用add函数并打印结果
result = cf.add(3, 5)
print(result)  # 预期输出:8

额外注意事项

  • 确保Python解释器和编译生成的.dll是同架构(32位/64位):如果Python是64位,必须用64位的g++编译;32位同理,否则会再次触发类似的WinError 193错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:55:04