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。