2014-12-27 3 views
4

Я только что начал использовать Emscripten и хотел бы начать использовать GLFW и другие библиотеки. Я полностью потерял, как создавать, связывать и использовать другие библиотеки с Emscripten.Использование библиотек с emscripten

Я пробовал следовать инструкциям на сайте Emscripten, но они мне не помогли. http://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html#using-libraries

Есть ли место с подробными инструкциями о том, как использовать библиотеки с Emscripten? Или конкретно GLFW?

ответ

7

Emscripten предоставляет очень мало библиотек. Эти библиотеки являются минимальными, чтобы получить некоторую функциональность OperativeSystem на emscripten C++ код (аудио, вход, видео)

  • Libc: стандартная библиотека для C
  • LibC++: стандартная библиотеки для C++
  • СДЛ: SimpleDirectmediaLayer (СДЛ 1.X проект с открытым исходным кодом кросс-платформенный)
  • GLES2: OpenGL ES 2 API
  • GLFW: GLFW 2.X

Например, стандартный способ включить OpenGLES2 в Emscripten является:

#include <GLES2/gl2.h> 

В то время как включить GLFW:

#include <GL/glfw.h> 

Там какая-то дерьмо в этом, потому что если вы хотите использовать более новую версию GLFW, вы просто не можете, потому что Emscripten предоставляет только 1 версию библиотеки, и вы должны придерживаться wi th, что (если Emscripten не сделает обновление для этого, и вы обновите Emscripten).

Вы можете скомпилировать библиотеки для emscripten, только если эти библиотеки могут быть скомпилированы с использованием одной (или нескольких) библиотек, перечисленных выше. (или если вы знаете, как обернуть javascript funciontalities и разоблачить их через интерфейс C)

Также старайтесь избегать использования только шаблонов только при использовании Emscripten, они буквально генерируют много кода раздувания, вы можете легко увеличить размер исполняемого файла несколькими MBs: Это проблема, если вы уже используете Boost или UBLAS.

Поскольку GLFW не одна из библиотек, которые автоматически связаны между собой, вы должны связать его с:

-lglfw 

Вы можете найти проект пример OpenGL с использованием Emscripten здесь:

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

вы можете проверить флаги компоновщика, открыв файл makefile

+2

SDL2 также доступен с '-s USE_SDL = 2' – PeterT

+0

Спасибо за ваш ответ! Это помогло мне разобраться. Тем не менее, мне все еще сложно строить. С помощью команды: em ++ glfw-test.cpp -o glfw-test.html я получаю ошибки вроде: warning: unresolved symbol: glfwCreateWindow. Я чувствую, что мне не хватает чего-то очень простого. – TheRoach

+0

@PeterT, SDL2 теперь должен компилироваться под Emscripten без необходимости использования версии Emscripten. @ TheRoach, вам, конечно же, необходимо связать с библиотекой GLFW '-lglfw' должно быть достаточно – GameDeveloper

Смежные вопросы