该文章只是为了记录我之前编译过Godot,今天重新使用VisualStudio2022预览版打开Godot生成的sln解决方案构建报错Microsoft.MakeFile.Targets(43,5): warning MSB8005: 未定义属性 “NMakeBuildCommandLine”。所以不会过多介绍如何编译Godot。
如果需要了解WIndow如何编译Godot可以去看官方文档[[Godot编译文档]]
首先我配置的环境是使用VisualStudio2022PreView + Msys2来编译Godot源码。
在Msys2的Mingw64使用
scons p=windows vsproj=yes
输入上面的命令之后,已经在文件夹下生成了sln解决方案可是我发现当你打开解决方案之后,点击运行或者选择生成下构建Godot都是直接控制台输出
Microsoft.MakeFile.Targets(43,5): warning MSB8005: 未定义属性 “NMakeBuildCommandLine”
而且当你打开终端进入Godot源码目录下,输入编译命令但是不使用Mingw环境生成,还是会使用mingw环境。
经过去Godot社区和github寻找解决方案,发现了原来是Scons识别不到我的msvc。
我这边总结一下就是需要更新一下Scons的版本信息。
python -m pip install --upgrade scons
然后需要按照这个目录打开文件
"D:\Programs\msys64\mingw64\lib\python3.11\site-packages\SCons\Tool\MSCommon\vc.py"
在文件中搜索vswhere_cmd
在我的版本是835行,然后修改为如下就可以。
vswhere_cmd = [vswhere_path] + vswhere_version_args + ["-property", "installationPath","-prerelease"]
现在重新输入命令生成sln,可以看到控制台打印输出在使用msvc。
然后vs打开sln点击运行就可以正常构建了。
如果觉得我的表述有问题可以点击下面链接,建议点击第二个官方社区帖子有图方便理解。
SCons doesn’t work with VS 2019-pre3 · Issue #26296 · godotengine/godot · GitHub
Generating solution file for visual studio 2022 missing nmake build settings - Help - Godot Forum