事情起因

我想自己重新编译一个最新的Cheat Engine在配置文件和项目设置里改了一通。

点击编译,结果发现 ????

Cheat Engine Release 64-Bit O4 AVX2 ,Error: Identifier not found “ExtractFileNameWithoutExt”

然后我上 stackoverflow 也没找到解决办法 最后在一则 Issues 找到了原因

https://github.com/cheat-engine/cheat-engine/issues/2642

原来是环境问题 新版本的lazarus编译不起作用 ,我尝试了2.2.4版本的lazarus 编译正常通过

从Lazarus 2.2开始,FileUtil中的某些功能在较新的版本中已更改为LazFileUtils ,
ExtractFileNameWithoutExt这个函数在 LazFileUtils 中,而不是在较新的 Lazaruses 中的 FileUtil 中

2024.8.3-Cheat Engine-1.png

还是太粗心大意了,这就是不看文档的后果,踩到不该踩的坑

解决

采用旧版本lazarus ,2.2.4 或2.2.6