Ошибка в emscripten при включении glfw и opengl

Я использую emscripten для компиляции моей игры на С++ для Интернета. Я также пытаюсь использовать glfw3 и OpenGL для этого.

Однако, когда я включаю:

#include <GLES3/gl3.h>

и:

#include <GLFW/glfw3.h>

Я получаю десятки ошибок о переопределении вещей. Я опубликую пример одного ниже, но все они очень похожи.

emsdk_portable/emscripten/master/system/include/GLES3/gl3.h:69:25: error: typedef
redefinition with different types ('khronos_ssize_t' (aka 'long') vs 'ptrdiff_t' (aka 'int'))
typedef khronos_ssize_t GLsizeiptr;

РЕДАКТИРОВАТЬ: Почему это было помечено как дубликат этого вопроса? Emscripten теперь поставляется в комплекте с glfw3 и OpenGL. Я почти уверен, что glfw3 также автоматически линкуется. Когда я пытаюсь включить обе эти библиотеки, поставляемые с Emscripten, я получаю ошибку, описанную выше. Может быть, я просто тупой, и мой вопрос на самом деле является дубликатом другого вопроса. Но если это так, может кто-нибудь хотя бы объяснить, как? Я этого не вижу.


person Anonymous Person    schedule 29.01.2017    source источник
comment
Почему вы отметили мой вопрос как дубликат? Это не..   -  person Anonymous Person    schedule 29.01.2017
comment
Я действительно понял это. На самом деле это не связано с вопросом, что это было помечено как дубликат. Я оставляю этот комментарий здесь на случай, если у кого-то в будущем возникнет аналогичная проблема. Решение состоит в том, чтобы вообще не использовать #include ‹GLES3/gl3.h›, а вместо этого, если вы хотите использовать функции OpenGL ES, вам нужно определить #define GLFW_INCLUDE_ES3, а затем #include ‹GLFW/glfw3.h› и opengl будет включен в glfw. Кроме того, при компиляции вашей программы вам необходимо включить флаг компилятора -s USE_GLFW=3. Я бы оставил это как ответ, но мой вопрос был ошибочно помечен как дубликат.   -  person Anonymous Person    schedule 30.01.2017