我的任务是将庞大的C项目从Windows移植到Linux。我以前从未移植过任何东西到Linux,而且对Linux来说还很陌生。该项目使用了很多win32调用。我已经仔细阅读了其中的部分内容,并了解了这些部分的功能,但是有很多活动的部分,因此我觉得花太多时间来仔细阅读所有内容。移植的最佳方法是什么?认为我可以将项目移到linux机器上并逐个解决错误是愚蠢的吗?
谢谢你!
答案 0 :(得分:2)
Wine是用于Linux的Windows模拟器,更确切地说是Windows API和二进制接口的重新实现,主要用于类Unix的操作系统。它还有一个名为 libwine 的内置库,该库实质上是相关Linux API(主要是libc和X11)与Win32之间的兼容层。
使用libwine编译项目,您将使用libwine作为共享库(共享库== dll)来编译Linux可执行文件(二进制)。这样,您可以在Linux项目中使用Windows API调用。
您对Win32 API的了解有很大帮助,最有可能的兼容性不是100%。可能您将不得不稍微修改一下代码(但不要太多)。