编译WASM版raylib时CMake无法找到GLES3/gl3.h头文件
编译raylib WebAssembly版本时'GLES3/gl3.h'找不到的问题解决
问题原因
- 编译raylib的WASM版本必须依赖Emscripten SDK提供的OpenGL ES头文件与工具链,你直接用系统默认的CMake执行配置,没有加载Emscripten的环境变量和工具链,导致编译时无法找到Emscripten自带的
GLES3/gl3.h。 add_subdirectory(src raylib)只是让CMake识别raylib的源码结构,但它无法自动提供WASM编译所需的跨平台依赖(比如GLES3头文件),这些依赖必须由Emscripten工具链注入。
解决步骤
1. 安装并激活Emscripten环境
如果还没装Emscripten SDK,先执行以下操作:
# 克隆emsdk仓库 git clone https://github.com/emscripten-core/emsdk.git cd emsdk # 安装最新版本 ./emsdk install latest # 激活最新版本 ./emsdk activate latest
然后激活环境变量:
- Linux/macOS:
source ./emsdk_env.sh - Windows:运行
emsdk_env.bat
2. 重新配置并编译raylib
回到raylib根目录,先清理之前的CMake缓存(避免残留配置干扰):
rm -rf CMakeCache.txt CMakeFiles/
使用Emscripten提供的emcmake工具启动CMake配置,它会自动加载WASM编译所需的工具链和头文件路径:
emcmake cmake -DPLATFORM=Web .
最后执行编译:
cmake --build .
3. 测试编译结果
编译完成后,在build目录下会生成WASM相关文件(如.wasm、.html、.js),可以用emrun快速测试:
emrun build/raylib_web_example.html
内容的提问来源于stack exchange,提问作者G T
相关产品推荐
相关产品推荐

