【发布时间】:2015-03-11 21:02:33
【问题描述】:
我一直在尝试编译我使用 OpenGL 2.1 和 C 编写的旧游戏。我想尝试使用 Emscripten 编译它。所以我继续用酱汁构建了工具和 SDK,编译了一些测试示例,一切都检查出来了。
长话短说,Emscripten 不太支持旧的/非 ES OpenGL(可以理解),但后来我读到 Regal 可以很好地用作解释器。
这就是我卡住的地方,我不知道如何组合 Regal。当我简单地替换 GL、GLU 和 GLUT 标头引用时,我得到了相同的 Emscripten 编译器警告,只是替换为似乎是 Regal 等价物:
警告:未解析的符号:rglPopMatrix 警告:未解析符号:rglShadeModel 警告:未解析符号:glutGameModeString 警告:未解析符号:rglLightfv 警告:未解析符号:rglMatrixMode 警告:未解析符号:glutSolidSphere 警告:未解析符号:rglLoadIdentity 警告:未解析符号:rglClear 警告:未解析符号:glutSolidCube 警告:未解析符号:rglTranslatef 警告:未解析符号:rglRotatef 警告:未解析符号:glutEnterGameMode 警告:未解析符号:rglMaterialfv 警告:未解析符号:rglPolygonMode 警告:未解析符号:rglPushMatrix 警告:未解析符号:rglGetFloatv 警告:未解析符号:rglViewport 警告:未解析符号:rglEnable
我在这里遗漏了一些简单或重要的东西吗?甚至解释为什么这不起作用/不应该起作用也会很棒。
如果我设法对此进行进一步了解,将发布更新。
附:我正在使用的编译器工具 - 操作系统是 Ubuntu 12.04,32 位
https://github.com/kripken/emscripten
编辑 2 我相当确定这是与 Regal 链接的问题,但除了简单的“包含 GL/Regal.H”和“与 libRegal.so 的链接”语句之外,我似乎找不到任何体面的文档或方法github页面。当我构建 Regal 包时,我使用了标准的“make all”命令。我还需要做更多的事情吗?
编辑 1 我当前的 makefile 是什么样子的
包括 = -L/home/BlastingKap/TestLibs/regal-master/lib/linux -lRegal -lRegalGLU -lRegalGLUT -s LEGACY_GL_EMULATION=1 -s GL_UNSAFE_OPTS=0
VoxelCannon:VoxelCannon.c graphics.c visible.c graphics.h ./emcc VoxelCannon.c graphics.c visible.c -o VoxCannon.html $(INCLUDES)
【问题讨论】:
-
你链接
libRegal.a了吗? (类似于emcc -lRegal foo.c) -
是的,我正在链接 libRegal、libRegalGLU 和 libRegalGLUT(如果我链接最后两个似乎无关紧要)。
标签: c opengl compilation cross-compiling emscripten