c - 从 Windows 到 Linux 的端口 C 项目
问题描述
我的任务是将一个庞大的 c 项目从 windows 移植到 linux。我以前从未将任何东西移植到 linux 上,而且对 linux 还是很陌生。该项目使用了相当多的 win32 调用。我已经浏览了其中的一些并了解了这些部分的作用,但是有很多活动部分,我觉得要花太多时间来浏览它们。移植它的最佳方法是什么?认为我可以将项目转移到 linux 机器上并一一解决错误是我的愚蠢吗?
提前谢谢你!
解决方案
Wine是一个适用于 Linux 的 Windows 模拟器,更准确地说是对 Windows API 和二进制接口的重新实现,主要用于类 Unix 操作系统。它还有一个名为libwine的内置库,它本质上是相关 Linux API(主要是:libc 和 X11)与 Win32 之间的兼容层。
使用 libwine 编译项目,您将编译一个 Linux 可执行文件(二进制),使用 libwine 作为共享库(共享库 == dll)。通过这种方式,您可以在 Linux 项目中使用 Windows API 调用。
你对 Win32 API 的了解很有帮助,很可能兼容性不是 100%。可能您将不得不稍微修改代码(但不要太多)。
推荐阅读
- shiny - R shinymaterial display radio buttons inline
- bash - 根据序列号重命名匹配文件
- reactjs - Using mobx with redux in the same project - even in the same component/class
- python - Improving Clarity and Efficiency in Algorithm
- reactjs - express-typescript-react: 404 (not found) frontend bundle file
- arduino - Arduino serial.available() 触发按键
- html - 添加到购物车按钮对齐和尺寸问题
- algorithm - 基于时间的聚类推荐算法
- arm-template - 可以从多个(复制/复制索引)ARM 子模板中获取输出吗?
- java - 使用 Clip 和 AudioInputstream 的声音处理程序将音频保存在 RAM 中