2017-03-08 1 views
0

PS: J'ai déjà essayé les réponses à ce lien: Supposedly duplicated :(problèmes en compilant avec GLEW

Mais je n'a pas obtenu de résultats, la même erreur persiste.

je essaie de compiler un code en C++, im en utilisant SDL et GLEW, je tentais de créer un sprite simple mais de le faire, je reçois la sortie suivante:

Errors

Ceci est mon source:

#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); 
} 

J'ai tous mes labrans ajoutés, mais j'ai cette sortie.

+0

Ce sont des erreurs de liens. Habituellement, ils signifient que vous avez omis de spécifier une bibliothèque dont votre code a besoin pour l'éditeur de liens. Si vous avez écrit le fichier makefile, vous devriez l'ajouter à la question. S'il a été généré par l'EDI, vous devez trouver le panneau de configuration de la bibliothèque et ajouter la bibliothèque manquante. – user4581301

+0

Etes-vous capable d'exécuter d'autres fonctions Glew autres que celles de votre classe d'image-objet? –

+0

https://gyazo.com/2668dad9906dc4e027f339e27a09ee4d glDrawArrays(); ne fait aucune erreur – SupineDread89

Répondre

2

Ajouter à votre CMakeLists.txt

find_package(GLEW REQUIRED) 
include_directories(${GLEW_INCLUDE_DIRS}) 

and in the target_link_libraries(... ${GLEW_LIBRARIES} ...) 

Ce sera très probablement résoudre votre problème, mais vous devriez plonger plus profondément dans CMake et écrire un fichier CMakeLists.txt plus propre.

+0

https://gyazo.com/a3c2d848246965e652ad00cf637f149a tester les CMakeLists j'ai cette sortie. Je vois _GLEW_INCLUDE_DIR GLEW_LIBRARY_ dans mon fichier FindGLEW.cmake, je ne sais pas où est manquant _GLEW_INCLUDE_DIR GLEW_LIBRARY_ – SupineDread89

+0

Il semble, comme votre cmake n'est pas au courant de votre installation GLEW. Pouvez-vous essayer d'ajouter -DGLEW_DIR = à votre appel cmake? – OutOfBound

+0

J'ai changé tout mon projet en studio visuel et cela a fonctionné, avec les mêmes versions de bibliothèque et le même #include. Mais merci Wero si utile – SupineDread89