使用 GLEW 编译的问题
Problems compiling with GLEW
PS:我已经尝试过这个 link 中的答案:
据说重复:(
但是我没有得到任何结果,仍然显示相同的错误。
我正在尝试用 C++ 编译一些代码,我正在使用 SDL 和 GLEW,我正在尝试创建一个简单的精灵,但这样做我得到了下一个输出:
这是我的来源:
#include "Sprite.h"
Sprite::Sprite() {
_vboID =0;
}
Sprite::~Sprite() {
if(_vboID != 0){
glDeleteBuffers(1, &_vboID);
}
}
void Sprite::init(float x, float y, float width, float height) {
x=_x;
y=_y;
width=_width;
height=_height;
if(_vboID==0){
glGenBuffers(1,&_vboID);
}
float vertexData[12];
vertexData [0] = x + width;
vertexData [1] = y + height;
vertexData [2] = x;
vertexData [3] = y + height;
vertexData [4] = x;
vertexData [5] = y;
//Second triangle
vertexData [6] = x;
vertexData [7] = y;
vertexData [8] = x + width;
vertexData [9] = y;
vertexData [10] = x + width;
vertexData [11] = y + height;
glBindBuffer(GL_ARRAY_BUFFER, _vboID);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
void Sprite::draw() {
glBindBuffer(GL_ARRAY_BUFFER, _vboID);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
我添加了所有实验室,但我有这个输出。
将此添加到您的 CMakeLists.txt
find_package(GLEW REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS})
and in the target_link_libraries( ... ${GLEW_LIBRARIES} ... )
这很可能会解决您的问题,但您应该更深入地研究 cmake 并编写一个更干净的 CMakeLists.txt 文件。
PS:我已经尝试过这个 link 中的答案: 据说重复:(
但是我没有得到任何结果,仍然显示相同的错误。
我正在尝试用 C++ 编译一些代码,我正在使用 SDL 和 GLEW,我正在尝试创建一个简单的精灵,但这样做我得到了下一个输出:
这是我的来源:
#include "Sprite.h"
Sprite::Sprite() {
_vboID =0;
}
Sprite::~Sprite() {
if(_vboID != 0){
glDeleteBuffers(1, &_vboID);
}
}
void Sprite::init(float x, float y, float width, float height) {
x=_x;
y=_y;
width=_width;
height=_height;
if(_vboID==0){
glGenBuffers(1,&_vboID);
}
float vertexData[12];
vertexData [0] = x + width;
vertexData [1] = y + height;
vertexData [2] = x;
vertexData [3] = y + height;
vertexData [4] = x;
vertexData [5] = y;
//Second triangle
vertexData [6] = x;
vertexData [7] = y;
vertexData [8] = x + width;
vertexData [9] = y;
vertexData [10] = x + width;
vertexData [11] = y + height;
glBindBuffer(GL_ARRAY_BUFFER, _vboID);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
void Sprite::draw() {
glBindBuffer(GL_ARRAY_BUFFER, _vboID);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
我添加了所有实验室,但我有这个输出。
将此添加到您的 CMakeLists.txt
find_package(GLEW REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS})
and in the target_link_libraries( ... ${GLEW_LIBRARIES} ... )
这很可能会解决您的问题,但您应该更深入地研究 cmake 并编写一个更干净的 CMakeLists.txt 文件。