使用带有emscripten的库

jmo*_*ggr 5 c++ glfw emscripten

我刚开始使用Emscripten,并希望开始使用GLFW和其他库.我完全迷失了如何使用Emscripten构建,链接和使用其他库.

我曾尝试按照Emscripten网站上的说明进行操作,但他们没有帮助我. http://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html#using-libraries

有没有关于如何使用Emscripten库的详细说明?或者特别是GLFW?

Gam*_*per 8

Emscripten为自己提供的库很少.这些库是在emscripten C++代码(音频,输入,视频)上获得一些OperativeSystem功能的最小值

  • libc:C的标准库
  • libc ++:C++的标准库
  • SDL:SimpleDirectmediaLayer(SDL 1.X是一个开源跨平台项目)
  • GLES2:OpenGL ES 2 API
  • GLFW:GLFW 2.X

例如,在Emscripten中包含OpenGLES2的标准方法是:

#include <GLES2/gl2.h>
Run Code Online (Sandbox Code Playgroud)

虽然包括GLFW:

#include <GL/glfw.h>
Run Code Online (Sandbox Code Playgroud)

有一些废话,因为如果你想使用更新版本的GLFW,你就是不能,因为Emscripten只提供了1个版本的库,你必须坚持下去(除非Emscripten为此做更新并且你更新Emscripten).

只有在可以使用上面列出的一个(或多个)库编译库时,才能为emscripten编译库.(或者如果你知道如何包装javascript函数并通过C接口公开它们)

此外,在使用Emscripten时,尽量避免使用模板库,它们会产生大量膨胀代码,您可以轻松地将可执行文件大小增加几MB:如果您已经在使用Boost或UBLAS,这是一个问题.

由于GLFW不是自动链接的库之一,因此您应将其链接到:

-lglfw
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到使用Emscripten的示例OpenGL项目:

https://github.com/QafooLabs/emscripten-opengl-example

您可以通过打开makefile来检查链接器标志

  • SDL2也可用`-s USE_SDL = 2` (2认同)
  • glm 可以使用 Emscripten 进行编译,因为它与平台无关(实际上将 glm 源代码添加到源代码树中,并提供正确的包含路径,并且定义了应编译的正确 GLM 配置宏)。 (2认同)
  • [glfw3也可用.](https://github.com/kripken/emscripten/pull/1887) (2认同)