<分区>
我尝试用 google 搜索它,我了解了一些东西,但仍然不知道哪一个适合我的需要。
我想做的就是在 Unix 环境下编译 C 文件(或 C++)(这样我就可以使用 Fork 和不能在 Windows 上运行的东西)并在编译后运行这些文件。
更准确地说,我需要使用 Fork+Semaphores 并使用 OpenMPI。我知道我可以用 Cygwin 来做这些(或者这就是我所理解的),但它似乎有一个非常大的尺寸,所以我想如果这个 Gnuwin32 或 MYSYS 可以做我想做的事情并且它们的尺寸比 Cygwin 小,那更好吗?
如果您绝对确定您需要 fork 并且不能使用更独立于平台的多处理方式(一个瘦fork
/CreateProcess
包装器) 或多线程(pthreads
, Boost.Thread
, C++11 std::thread
, ...),那么你就是在强制自己使用 Cygwin。
请注意,Cygwin 的 fork
几乎与 fork
在 Windows 上的效率一样高,但不是很有效,因为操作系统在设计时并未考虑到该操作,因此缺少内核级支持。
Cygwin 本身并不大:它只是您链接到的提供 POSIX 接口(interface)的 DLL。但请注意,Cygwin 是 GPL,链接到 Cygwin DLL 也会在您的项目中强制使用 copyleft。