编译时process_begin: CreateProcess | mutex/condition_variable 报错的一种解决办法

系统:win10
目的:想跑一下wisper.cpp
前置操作:把该项目git下来后打算make,一make就报错

image

注意,图里其实有两种错误,第一种是process_begin: CreateProcess(NULL,xxx) failed,第二种是error:'thread' is not a member of 'std'.

第二种错误是因为mingw不支持thread库,但是官方有给过补丁,可以自行下载该库。这么做对我来说没用,虽然打完补丁编译通过了,在make的时候mutex和conditon_variable还是出问题。最后重新下了mingw,在下载的时候选择posix,因为win32仍然不支持。

image

第一种错误我的解决思路是这样的:
找了很多资料都没有很好的解决办法,甚至资料很少。突发奇想换成linux编译试一下,发现输出不一样了

image

linux下输出了系统的信息。猜测是makefile的问题->去makefile里面看读取系统信息的语句,发现是类unix写法

image

修改成

image

总结:如果在make的时候出问题,往往是环境不行,可能是开发者的环境下它的makefile没问题,但是迁移到win上就需要修改;也可能是语言不支持、某个包不支持,一步一步耐心分析就能解决问题了。

posted @   liyishui  阅读(1759)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示