我有一个windows动态链接库,我想从Linux环境访问它。我没有那个库的源代码,所以无法生成.so文件。
是否可以使用Winelib或任何其他库或工具将库文件转换为.so文件,以便调用该库中定义的函数?

最佳答案

要做到这一点并不容易,因为DLL不能在Linux环境中单独运行。它可能在运行时依赖于user32.dllmsvcrt.dll和朋友,因此您还必须提供这些文件。
您可以使用winelib,但它不只是将.dll转换为.so。您必须将整个项目链接起来,以便针对winelib调用DLL,并在运行时将DLL本身包含在应用程序中。如果您尝试将Windows应用程序移植到Linux,winelib将能够为您转换makefile,但对于复杂的项目来说,它远不是自动的。

09-04 10:29
查看更多