2014-12-27 44 views

回答

7

Emscripten自己提供的庫很少。這些庫的最低對emscripten C++代碼(音頻,輸入,視頻)

  • 的libc得到一些OperativeSystem功能結果:C
  • 標準庫libC++:對於C++
  • 標準庫SDL:SimpleDirectmediaLayer(SDL 1.X是一個開源的跨平臺項目)
  • GLES2:OpenGL ES 2 API
  • GLFW:GLFW 2.X

例如,包括OpenGLES2在Emscripten的標準方法是:

#include <GLES2/gl2.h> 

雖然包括GLFW:

#include <GL/glfw.h> 

有一些廢話,因爲如果你想使用更新版本的GLFW,你就不能這樣做,因爲Emscripten只提供了這個庫的一個版本,你必須堅持使用wi (除非Emscripten爲此更新並更新Emscripten)。

只有在可以使用上面列出的一個(或多個)庫進行編譯時,纔可以爲emscripten編譯庫。 (或者,如果你知道如何將Javascript funciontalities並通過C接口揭露他們)也

,請嘗試使用Emscripten時避免模板只有庫,他們從字面上產生大量的臃腫的代碼,你可以很容易地通過幾個增加可執行文件的大小MBs:如果您已經使用Boost或UBLAS,這是一個問題。

由於GLFW不是自動鏈接庫中的一個,你應該將其鏈接:

-lglfw 

你可以在這裏使用Emscripten找到一個例子OpenGL的項目:

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

您可以通過打開生成文件檢查鏈接器標記

+2

SDL2也可以使用'-s USE_SDL = 2' – PeterT 2014-12-27 17:01:00

+0

感謝您的支持響應!這確實有助於爲我解決問題。但我仍然有困難建設。使用如下命令:em ++ glfw-test.cpp -o glfw-test。HTML我得到的錯誤如:警告:未解決的符號:glfwCreateWindow。我覺得我錯過了很簡單的事情。 – TheRoach 2014-12-27 17:23:02

+0

@PeterT,SDL2現在應該在Emscripten下編譯,而無需使用Emscripten版本。 @TheRoach,你當然需要鏈接到GLFW庫'-lglfw'應該就足夠了 – GameDeveloper 2014-12-28 00:36:10