编译时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 @ 2024-02-02 14:04  liyishui  阅读(114)  评论(0编辑  收藏  举报