将Linux的.so文件转换为Windows的.dll文件

4
我有一些C代码(包含各种头文件和make文件),在Linux(Ubuntu)下编译成一个.so文件,并有一个Python程序,使用Ctypes调用此共享对象的函数。现在,我想在Windows上使用此程序。在Windows上,Ctypes需要一个.dll文件而不是Linux中的.so文件。
所以,有没有一种方式可以将Linux的.so文件转换为.dll文件,以便在Windows中与Ctypes一起使用?

重新在Windows上编译或以Windows作为目标操作系统。 - Blacktempel
1个回答

8
不行,你需要重新编译适用于Windows的库。

1
链接 DLL 部分与 OP 的要求无关。他有一个 .so 文件,在 Windows Python 中完全无用,因此他必须绝对遵循您的第一个建议重新编译和重新链接为 Windows DLL。他不是试图从现有的 DLL 生成 Cygwin 或 MinGW 兼容的导入库。 - Eryk Sun
没错,我刚刚浏览了一下文本,我的错,已经删除了引用。 - uraimo
@uraimo:谢谢。我会尝试使用dlltool。或者我也在尝试在Linux上安装mingw并将代码编译成dll以在Windows上使用。这样可行吗? - Ashish kulkarni
是的,你应该能够做到这一点(“交叉编译”,或者在Windows上使用mingw)。 - uraimo
我已完全删除了对dlltool的引用,因为它不是重新编译的替代方案。 - user149341
2
抱歉,有点困惑。如果我没有源代码,只有一个.so文件,我该如何在Windows上重新编译它以获取.dll文件? - Roni Hoffman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接