c – 使用Win32线程模型时,MinGW-w64是否支持std :: thread开箱
在安装MinGW-w64工具链后,我已经选择了Win32线程模型,在阅读之后,它比POSIX对手提供了更好的性能.我没有资格自己对这个索赔进行基准测试,但是
here’s a source for it.
起初我认为这个选项只会影响GCC运行时的内部工作,而不会阻止我在代码中使用C 11线程,基于this answer和this comment的用户rubenvb. 我从命令行调用g,而不是-std = c 11以外的选项. 在这一点上,我不确定: > rubenvb是错误的,实际上有必要在POSIX线程模型下安装MinGW-w64,以便编译依赖于C 11线程库的代码,或者; 我加强了标题中的“开箱即用”部分.存在一个名为mingw-std-threads的库,如this answer所示.但是,作为第三方选项,与这个问题无关. 那么,截至今天(2016年5月),MinGW-w64是否支持std :: thread依赖代码,当安装了Win32内部线程模型? 解决方法
要将MinGW-w64与Win32本机线程一起使用,您还必须安装
mingw-std-threads标头.
如该页面所述,这是因为MinGW-w64是GCC的端口,但GCC不包括任何本机线程支持.相反,GCC安装通常通过gthreads或pthreads作为glibc的一部分来实现线程. MinGW-w64不包含glibc端口. (而是使用MSVC运行时的组合,加上自己的代码来填补漏洞). 同样如该页面所述,MinGW-w64的最新版本确实包含一个pthreads的Win32端口,它解释了为什么通过从MinGW-w64安装程序中选择“pthread”模型,可以让线程“开箱即可”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |