You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Emscripten构建Speed Dreams的依赖配置问题

移植Speed Dreams到Web的Emscripten构建问题及解决进展

初始构建问题

使用emcmake cmake(Emscripten的CMake工具链)构建开源赛车游戏Speed Dreams时,流程可自动检测到OpenAL、OpenGL等Emscripten自带依赖,但无法识别Zlib、PNG、OGG等非自带依赖,导致构建终止。示例报错如下:

-- Looking for library OpenAL - found
-- Could NOT find OGG (missing: OGG_LIBRARY OGG_INCLUDE_DIR)

自行下载jpeg-9e并用Emscripten构建后,得到包含.o、.wasm、.PLO、.PO及.a文件的.deps和.libs文件夹,但不清楚如何将这些依赖接入构建流程,也不确定是否需要修改Speed Dreams的CMake文件。

依赖获取更新

使用embuilder build [portName]命令成功获取jpeg、ZLib、PNG、OGG等依赖,但SDL2、Vorbis等有可用端口的依赖仍无法正常识别,构建输出片段如下:

-- Looking for libraries X11 - NOT found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - found
-- Looking for library OpenAL - found
-- Found OGG: C:/Users/prisc/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libogg.a
-- Looking for library Ogg - found
-- Found VORBIS: C:/Users/prisc/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libvorbis.a
-- Looking for library Vorbis - found
-- Could NOT find VORBISFILE (missing: VORBISFILE_LIBRARY)
-- Looking for library VorbisFile - NOT found
-- Looking for library ENet - NOT found
-- Looking for library OpenGL - found
-- Looking for library OpenGL/GLU - found
-- Found ZLIB: C:/Users/prisc/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libz.a (found version "1.2.13")
-- Looking for library Zlib - found
-- Found PNG: C:/Users/prisc/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libpng.a (found version "1.6.39")
-- Looking for library PNG - found
-- Found JPEG: C:/Users/prisc/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libjpeg.a (found version "90")
-- Looking for library JPEG - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Could NOT find SDL2 (missing: SDL2_INCLUDE_DIR)
-- Could NOT find SDL2 (missing: SDL2_INCLUDE_DIR)
-- Could NOT find SDL2 (missing: SDL2_INCLUDE_DIR)
-- Looking for library SDL2 - NOT found
-- Could NOT find SDL2 (SDL2 is required by SDL2_mixer).
-- Looking for library SDL2_mixer - NOT found
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
-- Looking for library CURL - NOT found
-- Could NOT find osgDB (missing: OSGDB_LIBRARY OSGDB_INCLUDE_DIR)
-- Could NOT find osgViewer (missing: OSGVIEWER_LIBRARY OSGVIEWER_INCLUDE_DIR)
-- Could NOT find osgGA (missing: OSGGA_LIBRARY OSGGA_INCLUDE_DIR)
-- Could NOT find osgUtil (missing: OSGUTIL_LIBRARY OSGUTIL_INCLUDE_DIR)
-- Could NOT find osgFX (missing: OSGFX_LIBRARY OSGFX_INCLUDE_DIR)
-- Could NOT find osgParticle (missing: OSGPARTICLE_LIBRARY OSGPARTICLE_INCLUDE_DIR)
-- Could NOT find osgShadow (missing: OSGSHADOW_LIBRARY OSGSHADOW_INCLUDE_DIR)
-- Could NOT find osgText (missing: OSGTEXT_LIBRARY OSGTEXT_INCLUDE_DIR)
-- Could NOT find osg (missing: OSG_LIBRARY OSG_INCLUDE_DIR)
-- Could NOT find OpenThreads (missing: OPENTHREADS_LIBRARY OPENTHREADS_INCLUDE_DIR)
CMake Error at C:/Program Files/CMake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenSceneGraph (missing: OPENSCENEGRAPH_LIBRARIES
  OPENSCENEGRAPH_INCLUDE_DIR OSGDB_FOUND OSGVIEWER_FOUND OSGGA_FOUND
  OSGUTIL_FOUND OSGFX_FOUND OSGPARTICLE_FOUND OSGSHADOW_FOUND OSGTEXT_FOUND
  OSG_FOUND OPENTHREADS_FOUND) (Required is at least version "3.4.0")
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.29/Modules/FindOpenSceneGraph.cmake:226 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/checks.cmake:280 (Find_Package)
  CMakeLists.txt:57 (CHECK_LIBRARIES)

自定义依赖引入疑问

找到初步解决方向,但需明确:如何将自行用Emscripten构建的依赖(如OpenSceneGraph-3.6.5、expat、curl、enet)接入Speed Dreams的构建流程?

最终解决发现

  • 使用emmake make install命令,可将自行构建好的依赖的库文件、include目录自动安装到Emscripten的sysroot目录,无需手动配置路径。
  • 针对之前的依赖识别问题,还需手动修改CMake缓存文件,补全缺失的文件/目录路径后,重新执行emcmake cmake即可继续构建。

内容的提问来源于stack exchange,提问作者Priscilla Lagunas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:54:51