【发布时间】:2016-01-23 20:46:05
【问题描述】:
我正在尝试将 SFML 与 OpenGL 一起使用,并且我的设置运行良好。然后我看到要使用现代 OpenGL 函数,我还需要包含 glew。我尝试了一整天来设置这个东西,但它不起作用。
这就是我所做的:
#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/OpenGL.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
using namespace std;
sf::RenderWindow window(sf::VideoMode(1280, 760), "SFML works!");
sf::Event Event;
sf::Shader defaultShader;
GLfloat vertices[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.5f, 0.0f
};
GLuint VBO, VAO;
int main()
{
glewInit();
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
return 0;
}
我得到了这些错误:
undefined reference to '__glewGenVertexArrays'
undefined reference to '__glewGenBuffers'
undefined reference to '__glewBindVertexArray'
除glewInit()外,我使用的所有函数都以此类推。
我使用了 SFML 2.3。我去了 Code::Blocks 项目设置和
- 链接
sfml包含文件夹 - 链接了
sfml库 - 声明
sfml_static
如何设置glew? (glew 包含在 SFML 中,所以我只是用
#define GLEW_STATIC
#include <GL/glew.h>
我的代码应该可以工作,但它没有。
【问题讨论】:
标签: c++ opengl codeblocks sfml glew