Windows 10环境下按官方README构建Kismet Debugger(UE4SS工具)时的CMake与Rust工具链错误排查求助
Windows 10环境下按官方README构建Kismet Debugger(UE4SS工具)时的CMake与Rust工具链错误排查求助
大家好,我最近在跟着Kismet Debugger的官方README文档,为UE4SS工具构建这个调试器,但在Windows10系统上遇到了一堆卡壳的问题,折腾了好几天没搞定,来求助大家帮忙看看哪里出问题了。
环境基本信息
- 系统:Windows 10
- 构建终端:VS2022的x64 Native Build Tools Command Prompt
- Rust环境:已安装最新Stable版本,
rustup show可查看到的可用工具链包括:stable-x86_64-pc-windows-gnustable-x86_64-pc-windows-msvc1.46-x86_64-pc-windows-msvc
第一个卡壳点:CMake无法识别Rust工具链
克隆仓库的过程很顺利,但当我严格按照README里的命令,用Ninja生成项目时:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
直接弹出了CMake错误,完整报错日志如下:
CMake Error at build/_deps/corrosion-src/cmake/FindRust.cmake:23 (message): Could not find toolchain '' Available toolchains: `stable-x86_64-pc-windows-gnu` `stable-x86_64-pc-windows-msvc` `1.46-x86_64-pc-windows-msvc` Call Stack (most recent call first): build/_deps/corrosion-src/cmake/FindRust.cmake:461 (_findrust_failed) build/_deps/corrosion-src/cmake/Corrosion.cmake:34 (find_package) build/_deps/corrosion-src/CMakeLists.txt:33 (include)
我就很纳闷,明明已经装了最新的Stable Rust,工具链也都在,为什么CMake会找不到呢?
强行推进后遇到的新错误
不死心的我尝试了一些自救操作:
- 把默认Rust工具链切换到Nightly,再重新安装了Stable版本
- 手动指定Rust编译器和Cargo路径,用了这条命令:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DRust_COMPILER="C:\Users\John\.cargo\bin\rustc.exe" -DRust_CARGO="C:\Users\John\.cargo\bin\cargo.exe" -DRust_TOOLCHAIN="stable-x86_64-pc-windows-msvc" -DRust_CARGO_TARGET_LINK_NATIVE_LIBS="kernel32;ntdll;userenv;ws2_32;dbghelp;msvcrt"
这条命令顺便解决了另一个“Ninja找不到/library "/default:msvcrt"”的错误,但紧接着又爆了一堆新错误,其中最关键的一个是:
C:\Users\John\Kismet\kismet-debugger\RE-UE4SS\deps\first\Unreal\include\Unreal/Core/Misc/Build.hpp(45): fatal error C1189: #error: Exactly one of [UE_BUILD_DEBUG UE_BUILD_DEVELOPMENT UE_BUILD_TEST UE_BUILD_SHIPPING] should be defined to be 1
这个错误看起来像是Unreal的预处理器定义没配对?但README里完全没提需要手动设置这些啊。
奇怪的对比:单独作为UE4SS Mod能编译成功
我后来试着只把Kismet Debugger的核心源码(dllmain.cpp、KismetDebugger.cpp、KismetDebugger.hpp)拷贝出来,按照UE4SS官方的C++ Mod创建指南,新建了一个Mod项目,居然一次性编译成功了!
这就让我更困惑了:既然作为普通Mod能正常编译,为什么项目官方README里要推荐用CMake+Ninja的命令行方式构建?是不是我哪里的环境配置或者步骤漏了?
我的核心疑问
- 最开始的Rust工具链找不到的问题,到底是CMake配置的问题,还是我Rust环境的问题?怎么才能让CMake正确识别到已安装的Rust工具链?
- 后来出现的Unreal预处理器定义错误,是不是因为CMake构建时没有自动注入Unreal的编译宏?有没有办法在CMake命令里手动补全这些宏定义?
- 为什么官方推荐的构建方式和普通UE4SS Mod的构建方式差异这么大?我是不是误解了README里的步骤?
麻烦各位大佬帮忙分析一下,感谢感谢!




