【问题标题】:Port C Project from Windows to Linux [closed]从 Windows 到 Linux 的端口 C 项目 [关闭]
【发布时间】:2019-03-16 20:53:15
【问题描述】:

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

谢谢你!

【问题讨论】:

  • 最简单的方法是在 Wine 下运行 Windows 二进制文件,而不是移植源代码。 Win32 函数和 POSIX 函数之间并不总是一一对应的,移植可能涉及对程序结构和逻辑的大量重新设计。

标签: c linux windows porting


【解决方案1】:

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

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

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

【讨论】:

  • Wine = Wine 不是模拟器 :)
  • @EugeneSh。谢谢,帖子已扩展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
相关资源
最近更新 更多