繁体   English   中英

是否可以使用Cygwin或MinGW将Linux守护程序移植到Windows?

[英]Is it possible to port a Linux daemon to Windows using Cygwin or MinGW?

我有一个作为守护程序运行的Linux C ++应用程序。 当用户执行此应用程序时,它将在后台运行,侦听端口并等待来自客户端的连接。

是否可以使用Cygwin或MinGW将这种应用程序移植到Windows平台?

谢谢。

几乎可以移植任何东西(除非仅对一个OS有意义)。 问题是“ 移植应用程序X有多困难 ”? 为了帮助回答该问题,我们需要查看源代码。

通用提示

基本上可以归结为您在代码库中分配了多少与编译器/系统相关的代码。 我看到您至少使用了两个敏感的东西:守护进程和套接字。

守护程序很难移植,因为Windows( Windows服务 )上的等效程序需要不同的平台特定代码。 这是固定成本(例如,在其他应用程序的大小上没有变化)。

套接字或多或少要难于移植,具体取决于您是否使用高级网络功能(异步I / O等),而这些功能在系统之间的差异往往更大。 它还取决于您是否将套接字操作代码抽象为某些可重用的组件。 Windows支持非常相似的套接字接口(经典的BSD套接字接口,对API的随机部分进行了较小的修改)。 如果您未编写包装类,则更改一个Socket更改代码更容易。

Cygwin的目标是与POSIX / Linux源代码级兼容,因此您的应用程序应该在没有或仅进行少量修改的情况下构建和运行。

MinGW不会尝试提供这种兼容性层。 它只是Windows的GNU工具链,因此您需要用Windows等效项替换对POSIX / Linux专用API的任何使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM