分类
GCC

mingw-w64:win32还是posix?

GCC附带了一个编译器运行时库(libgcc),它用于(除其他外)为其支持的语言中的多线程相关功能提供低级OS抽象。最相关的例子是的libstdc ++的C ++ 11 ,不具有完全实现时,GCC在其内部的Win32线程模型建立。MinGW-w64提供了一个winpthreads(在Win32多线程API之上的pthreads实现),GCC可以将其链接到其中以启用所有奇特的功能。

我必须强调这个选项并不禁止你编写你想要的任何代码(它对你可以在代码中调用的API 完全没有影响)。它只反映了GCC的运行时库(libgcc / libstdc ++ / …)用于其功能。

总结一下:

posix:启用C ++ 11 / C11多线程功能。使libgcc依赖于libwinpthreads,这样即使你不直接调用pthreads API,你也会分发winpthreads DLL。在您的应用程序中再分发一个DLL没有任何问题。
win32:没有C ++ 11多线程功能。
对调用Win32 API或pthreads API的任何用户代码都没有影响。你可以随时使用两者。

发表评论

电子邮件地址不会被公开。 必填项已用*标注