c - 将大型 C 项目从 Unix 移植到 Windows

标签 c windows unix porting

因此,我有一个完全基于 Unix (SPARC Solaris) 构建的大型 C 项目。我和其他几个人已经开始重新审视它,因为他们对 Windows 构建有些兴趣。

我们中没有人用如此规模的项目做过这件事,所以对于初学者来说,有没有人将某些东西从 unix 移植到 windows,并且可以给我一些指导或他们是如何做到的。

我们计划的第一步是决定编译器/开发环境。

看来我们的选择是 MS Visual Studio、Cygwin、mingw/gcc 和 Windows Services for UNIX (SFU)。

我们的时间表相当短,因此我们希望重写尽可能少的代码。

所以,决定编译器。

另一个问题是代码确实使用了 POSIX 线程命令(pthread 等)

我们更愿意本地编译,而不是在可执行文件和操作系统之间使用某种层。不幸的是,对于我们代码中的 pthread 调用,这可能是不可能的。

我相信 Cygwin 和 SFU 都能做到这一点。 Cygwin 有一个 .dll,必须包含在编译代码中才能工作。我不确定 SFU,如有任何相关信息,我们将不胜感激。这似乎是一个不错的选择,但它的开发是为了允许 UNIX 编译的软件在带有 SFU 的 Windows 机器上运行,而不是任何旧的 Windows 机器。

mingw 确实具有创建 native exe 的能力,但缺少 POSIX 支持。

那么,在这种情况下,任何人都可以给我更多关于这些编译器的信息、建议和知识。或他们在此类事情上的任何经验,我们将不胜感激。

最佳答案

时间表很短? CygWin,简单明了。

尽管您偏好不使用层,但这将提供最快的路径,而且您似乎并未表明时间范围要求是灵活的。

我们已经使用 CygWin 将命令行程序和基于 X 的 UNIX 程序移植到 Windows 上,而且麻烦最少。

关于c - 将大型 C 项目从 Unix 移植到 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773354/

相关文章:

c - 32 位与 64 位架构上的内存访问

c - iup 程序在 IupOpen(argc, argv) 中崩溃;

c - 通过使用 -s 开关编译来测试 C 代码?

windows - 使用 RabbitMQ 在 Windows 安装上更新 Erlang 的最佳方法是什么

windows - 如何让下面的 dsf 代码工作?

c - 收到 SIGSEGV 信号后的处理行为?

java - 正确设置工作路径

c - 如何使用curl从缓冲区上传图像?

windows - 在windows下找到JDK的安装目录

unix - 每次重启 liferay-tomcat 后,Lucene 索引都会出现断段