自学内容网 自学内容网

minGW进行opencv编译时提示error: ‘mutex‘ in namespace ‘std‘ does not name a type

minGW进行opencv编译时提示error: ‘mutex’ in namespace ‘std’ does not name a type
error: ‘Mutex’ does not name a type; did you mean ‘putenv’?
error: class ‘IlmThread_opencv::Lock’ does not have any field named ‘_mutex’
在这里插入图片描述
原因是minGW下载的版本不对,在mingw构建工具链的“线程模型:win32”中不支持互斥。您必须选择任何具有“线程模型:posix”的工具链。
选择 -posix的免安装包作为编译器。

首先排查是否是版本的原因:
cmd,输出gcc-v,如果你的也是win32,就是版本的原因。
在这里插入图片描述
软件下载链接:
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/
在这里插入图片描述
解决办法:
可以将原来的minGW删除,或者另外新建一个minGW文件夹,将上面的压缩包解压到一个路径就可以,不需要安装,同时添加环境变量,将原来的环境变量删除。
重新cmd,输入gcc-v ,版本就变成posix了,再次编译就不会报关于mutex的报错了。
在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_47464132/article/details/143938027

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!