将库与 emscripten 一起使用

Using libraries with emscripten

本文关键字:一起 emscripten      更新时间:2023-10-16

我刚刚开始使用Emscripten,想开始使用GLFW和其他库。我完全不知道如何使用 Emscripten 构建、链接和使用其他库。

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

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

Emscripten提供很少的库。这些库是在 emscripten C++ 代码(音频、输入、视频)上获得一些操作系统功能的最低要求。

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

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

#include <GLES2/gl2.h>

虽然包括 GLFW:

#include <GL/glfw.h>

这其中有一些废话,因为如果你想使用最新版本的GLFW,你就不能,因为Emscripten只提供1个版本的库,你必须坚持下去(除非Emscripten为此进行更新并且你更新Emscripten)。

仅当可以使用上面列出的一个或多个库编译 emscripten 库时,才能为 emscripten 编译库。(或者如果你知道如何包装JavaScript功能并通过C接口公开它们)

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

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

-lglfw

你可以在这里找到一个使用Emscripten的OpenGL项目示例:

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

可以通过打开生成文件来检查链接器标志