首页 > 解决方案 > 从 Windows 到 Linux 的端口 C 项目

问题描述

我的任务是将一个庞大的 c 项目从 windows 移植到 linux。我以前从未将任何东西移植到 linux 上,而且对 linux 还是很陌生。该项目使用了相当多的 win32 调用。我已经浏览了其中的一些并了解了这些部分的作用,但是有很多活动部分,我觉得要花太多时间来浏览它们。移植它的最佳方法是什么?认为我可以将项目转移到 linux 机器上并一一解决错误是我的愚蠢吗?

提前谢谢你!

标签: clinuxwindowsporting

解决方案


Wine是一个适用于 Linux 的 Windows 模拟器,更准确地说是对 Windows API 和二进制接口的重新实现,主要用于类 Unix 操作系统。它还有一个名为libwine的内置库,它本质上是相关 Linux API(主要是:libc 和 X11)与 Win32 之间的兼容层。

使用 libwine 编译项目,您将编译一个 Linux 可执行文件(二进制),使用 libwine 作为共享库(共享库 == dll)。通过这种方式,您可以在 Linux 项目中使用 Windows API 调用。

你对 Win32 API 的了解很有帮助,很可能兼容性不是 100%。可能您将不得不稍微修改代码(但不要太多)。


推荐阅读