windows 编译ryzomcore

这个报错在你这个环境里基本可以确定不是“没装 OpenAL”,而是 CMake 没走 vcpkg 的 OpenAL 配置路径


一、问题本质(关键)

你现在触发的是:

CMake/Modules/FindOpenAL.cmake(老式 Find 模块)

而不是:

vcpkg OpenALConfig.cmake(现代包)

所以它在“手动找头文件 + lib”,结果找不到。


二、先确认一件事(很重要)

请你检查这个路径是否存在:

G:/vcpkg/installed/x64-windows/include/AL/al.h
G:/vcpkg/installed/x64-windows/lib/OpenAL32.lib

如果存在 → 说明 vcpkg 没问题
如果不存在 → 说明 OpenAL 没装对


三、正确修复方式(推荐顺序)

✔ 方案1(最推荐):强制 vcpkg 接管 OpenAL

重新 cmake,加:

-DCMAKE_TOOLCHAIN_FILE=G:/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DCMAKE_PREFIX_PATH=G:/vcpkg/installed/x64-windows

✔ 方案2:直接手动指定 OpenAL(100%有效)

-DOPENAL_INCLUDE_DIR=G:/vcpkg/installed/x64-windows/include ^
-DOPENAL_LIBRARY=G:/vcpkg/installed/x64-windows/lib/OpenAL32.lib

✔ 方案3:强制关闭 FindOpenAL(绕过旧模块)

有些 Ryzom Core 分支支持:

-DOPENAL_FOUND=ON

四、推荐你直接用这个“稳定 cmake 命令”

cmake -S . -B build ^
-G "Visual Studio 17 2022" ^
-A x64 ^
-DCMAKE_TOOLCHAIN_FILE=G:/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DCMAKE_PREFIX_PATH=G:/vcpkg/installed/x64-windows ^
-DOPENAL_INCLUDE_DIR=G:/vcpkg/installed/x64-windows/include ^
-DOPENAL_LIBRARY=G:/vcpkg/installed/x64-windows/lib/OpenAL32.lib ^
-DWITH_LUABIND=OFF

五、你现在这个坑的真实原因(重点理解)

Ryzom Core / NeL 的 CMake 写法是:

find_package(OpenAL REQUIRED)

但它的 FindOpenAL.cmake:

  • ❌ 不认识 vcpkg config
  • ❌ 不读取 OpenALConfig.cmake
  • ❌ 只做“手动路径搜索”

所以你会看到:

明明装了 OpenAL,但它说找不到


六、如果你想“一步到位彻底修复”(推荐)

可以直接改 CMake:

打开:

nel/CMakeLists.txt

找到:

find_package(OpenAL REQUIRED)

改成:

find_package(OpenAL CONFIG REQUIRED)

👉 这样就会直接走 vcpkg 的 OpenALConfig.cmake


七、额外提醒(你下一步一定会遇到)

修完 OpenAL 后,你下一关是:

❌ Luabind

Unable to find Luabind

👉 建议直接:

-DWITH_LUABIND=OFF

八、总结一句话

你这个错误不是 VS2026问题,也不是 OpenAL没装:

Ryzom Core 的老 CMake FindOpenAL 和 vcpkg 现代包系统不兼容


如果你下一步继续报错(Lua / Boost / NeL / MySQL),直接贴出来,我可以帮你把 Windows 版 Ryzom Core 一路修到能跑 client。

类似文章