我有一个windows动态链接库,我想从Linux环境访问它。我没有那个库的源代码,所以无法生成.so文件。
是否可以使用Winelib
或任何其他库或工具将库文件转换为.so文件,以便调用该库中定义的函数?
最佳答案
要做到这一点并不容易,因为DLL不能在Linux环境中单独运行。它可能在运行时依赖于user32.dll
msvcrt.dll
和朋友,因此您还必须提供这些文件。
您可以使用winelib,但它不只是将.dll
转换为.so
。您必须将整个项目链接起来,以便针对winelib调用DLL,并在运行时将DLL本身包含在应用程序中。如果您尝试将Windows应用程序移植到Linux,winelib将能够为您转换makefile,但对于复杂的项目来说,它远不是自动的。