Godot -为windows加密编译,Scons 编译出错 visual studio 版本为17.13

此文章我在B站也发了,署名Xa_Xa

一、scons platform=windows 命令之后报错

报错

[Initial build] Compiling thirdparty\thorvg\src\loaders\svg\tvgSvgCssStyle.cpp ...

[Initial build] Compiling thirdparty\thorvg\src\loaders\svg\tvgSvgLoader.cpp ...

[Initial build] Compiling thirdparty\thorvg\src\loaders\svg\tvgSvgPath.cpp ...

[Initial build] Compiling thirdparty\thorvg\src\loaders\svg\tvgSvgSceneBuilder.cpp ...

[Initial build] Compiling thirdparty\thorvg\src\loaders\svg\tvgSvgUtil.cpp ...

[Initial build] Compiling thirdparty\thorvg\src\loaders\svg\tvgXmlParser.cpp ...

[Initial build] Compiling thirdparty\thorvg\src\loaders\raw\tvgRawLoader.cpp ...

D:\Vis Studio\VC\Tools\MSVC\14.43.34808\include\mutex(37): error C3861: ��_Mtx_init_in_situ��: �Ҳ�����ʶ��

D:\Vis Studio\VC\Tools\MSVC\14.43.34808\include\mutex(536): error C3861: ��_Cnd_init_in_situ��: �Ҳ�����ʶ��

D:\Vis Studio\VC\Tools\MSVC\14.43.34808\include\condition_variable(56): error C3861: ��_Cnd_init_in_situ��: �Ҳ�� ���ʶ��

scons: *** [thirdparty\thorvg\src\loaders\svg\tvgSvgLoader.windows.editor.x86_64.obj] Error 2

D:\Vis Studio\VC\Tools\MSVC\14.43.34808\include\mutex(37): error C3861: ��_Mtx_init_in_situ��: �Ҳ�����ʶ��

D:\Vis Studio\VC\Tools\MSVC\14.43.34808\include\mutex(536): error C3861: ��_Cnd_init_in_situ��: �Ҳ�����ʶ��

D:\Vis Studio\VC\Tools\MSVC\14.43.34808\include\condition_variable(56): error C3861: ��_Cnd_init_in_situ��: �Ҳ�� ���ʶ��

scons: *** [thirdparty\thorvg\src\loaders\raw\tvgRawLoader.windows.editor.x86_64.obj] Error 2

scons: building terminated because of

询问AI,认为是这些错误表明编译器无法识别 _Mtx_init_in_situ 和 _Cnd_init_in_situ 函数

二、reddit找到相同的问题回答:

目测是版本太新了,评论有两种方法,一种是降级到VS 17.11.5 ,另一种
 

去godot4.x的源文件里 找到3个文件,并改三个地方:

godot-4.3-stable\thirdparty\thorvg\src\common tvgLock.h

godot-4.3-stable\thirdparty\thorvg\src\renderer tvgTaskScheduler.h


 

1.在 tvgLock.htvgTaskScheduler.h 文件中

删除#define _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR

2.在 platform/windows/detect.py文件中

添加 "_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" to CPPDEFINES


 

最后再次尝试scons platform=windows

成功!

bin目录下的:


 


 


 


 

希望能帮到和我一样的家人们~~

链接:https://www.reddit.com/r/godot/comments/1gw220q/latest_visual_studio_update_1712_broke_scons/

github链接:https://github.com/godotengine/godot/issues/95861

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值