簡體   English   中英

在OSX 10.8.5中包含OpenGL / gl3.h之后,使用未聲明的標識符'glGenVertexArrays'錯誤

[英]use of undeclared identifier 'glGenVertexArrays' error even after including OpenGL/gl3.h in OSX 10.8.5

我在OSX 10.8.5中使用SDL打開OpenGL上下文。

我已經運行了一些繪制線條/三角形的教程等。然后我開始在www.open.gl上嘗試更現代的教程

我遇到了OpenGL 3+ API的問題。 我已在頭文件中包含gl3.h:

#include <SDL2/SDL.h>
#include <SDL2/SDL_opengl.h>
#include <OpenGL/gl3.h>

我得到一個警告,這是預期的,因為我認為sdl標題打開gl.h 這沒關系,但問題是但是編譯器仍然報告glGenVertexArrays為undefined,即使包含了glGenVertexArrays ,也就是說error: use of undeclared identifier 'glGenVertexArrays' glGenVertexArrays(1, &vao);

我相信我自己也見過這個問題。 我必須在我的一個標題中添加一個ifdef語句

#ifdef __APPLE__
#define glGenVertexArrays glGenVertexArraysAPPLE
#define glBindVertexArray glBindVertexArrayAPPLE
#define glDeleteVertexArrays glDeleteVertexArraysAPPLE
#endif

此外,您還應該包括 SDL OpenGL頭或本機系統頭。 但是,如果你想使用SDL OpenGL標題,你應該像這樣做

#define GL_GLEXT_PROTOTYPES 1
#include <SDL2/SDL_opengl.h>

或者你只會獲得較舊的OpenGL 1.x功能。

您不必包含SDL_opengl.h ,只需包括:

#ifdef __APPLE__
#include <OpenGL/gl3.h>
#include <OpenGL/gl3ext.h>
#endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM