Problem z linkowaniem biblioteki glew w dev-c++

0

instalacji glew oraz freeglut dokonałem tak jak opisano tutaj:
http://www.vbforums.com/showthread.php?t=280609&goto=nextnewest
program z przykładu linkuje się bez zarzutów i wyświetla to okno o którym mowa, wiec niby wszystko działa, no właśnie niby, bo próba użycia innej komendy takiej jak glGetShaderiv w środowisku glut wywala "linker error"
glut jest w porządku - instalowany z devpak + testowany przykładowym programem.
Jeżeli ktoś wie co robie nie tak to proszę o pomoc.

Dodam jeszcze to :

#include <GL/glew.h>
#include <GL/freeglut.h>
#include <cstdio>

GLuint shader;
int infologLength = 0;

int main(int argc, char **argv) {
    
    glutInit(&argc, argv);
    glutInitWindowSize(640,480);
    glutInitWindowPosition(10,10);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
   
    glutCreateWindow("Blah");
   
    GLenum err = glewInit();
    if (err == GLEW_OK) {
       glutMainLoop();        
    }
    
    glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infologLength);
    
    // if GLEW is found, the program will show a "dirty" window.
    // if not, the window will only be shown only for a split second.
    
    return 0;
    
}

Dodałem tylko fcje glGetShaderiv i już sie nie kompiluje:
[linker error] undefinied reference to `_imp____glewGetShaderiv'

0

Linker nie znajdzie tej funkcji bo nie jest ona exportowana, jej adres (lub zero) zwraca takie coś:

PFNGLGETSHADERIVPROC glGetShaderiv = (PFNGLGETSHADERIVPROC) wglGetProcAddress("glGetShaderiv");

Zanim zapytasz o następna funkcję, przeszukaj headery i zagogluj za znalezionym typedef

0

podejrzewałem że chodzi o coś takiego, podobnie trzeba było przy multitexturowaniu. Z tym że w przykładowych programach nie było tego, wiec miałem nadzieje że da sie inaczej, no trudno w każdym razie kompilacja sie nie wysypuje =]

Niestety jeszcze mi nie wykrywa tej funkcji pewnie trzeba coś dodać, no trudno pokombinuje, jak coś to napisze =P

dopisane
Jednak działa mój głupi błąd napisałem :

PFNGLGETSHADERIVPROC glGetShaderiv = NULL;
void init(){
 PFNGLGETSHADERIVPROC glGetShaderiv = (PFNGLGETSHADERIVPROC)wglGetProcAddress("glGetShaderiv"); 
} 

chyba błąd oczywisty, teraz wszystko działa. [green]

1 użytkowników online, w tym zalogowanych: 0, gości: 1