PDA

Visualizza la versione completa : [C++] OpenGL: Texture Mapping Glaux.h


robyp
01-08-2005, 16:27
Salve,

Sto programmando in ambiente C++ ed OpenGl. Cerco di caricare una texture in un cubo utilizzando funzioni della libreria GL/glaux.h ho inserito il codice sottostante che carica la bitmap. mi da l'errore nella prima riga quando dichiaro questa funzione:

/carica il file di bitmap per la texture
AUX_RGBImageRec *LoadBMP(char *Filename) <-- qui mi da errore
{
FILE *File = NULL;
if (!Filename) return NULL;
File = fopen (Filename, "r");
if (File){
fclose (File);
return auxDIBImageLoad(Filename); //Load The Bitmap
}
return NULL;
}

l'errore è il seguente:
[Linker error] undefined reference to `auxDIBImageLoadA@4'

auxDIBImageLoadA è contenuto nella libreria glaux.h che ho scaricato come aggiornamento librerie del DEV-C++. Ho inserito l'header #include <GL/glaux.h> in testa al file.
Ho pensato di agg nelle proprietà di progetto sotto Parametri -> Linker il riferimento al file libglaux.a (presente sotto la cartella lib), l'errore non mi si presenta ma in più mi si aggiungono altri errori:
[Linker error] undefined reference to `_imp__CreateCompatibleDC@4'
[Linker error] undefined reference to `_imp__CreateDIBSection@24'
[Linker error] undefined reference to `_imp__SelectObject@8'
[Linker error] undefined reference to `_imp__SetDIBits@28'
[Linker error] undefined reference to `_imp__GdiFlush@0'
....

qualcuno puo' aiutarmi?
Grazie!

Roby

Andrea Simonassi
02-08-2005, 11:45
Le funzioni che non ti linka mi ricordano di molto alcune funzioni dell'api di windows, se stai compilando su windows probabilmente dovrai linkare anche alcune delle seguenti...

kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib

anx721
03-08-2005, 03:39
inoltre devi linkare con le opengl opengl32.lib glu32.lib

XVincentX
03-08-2005, 10:31
Originariamente inviato da robyp


/carica il file di bitmap per la texture
AUX_RGBImageRec *LoadBMP(char *Filename) <-- qui mi da errore
{
FILE *File = NULL;
if (!Filename) return NULL;
File = fopen (Filename, "r");
if (File){
fclose (File);
return auxDIBImageLoad(Filename); //Load The Bitmap
}
return NULL;
}


Usi i tutorial di Nehe vero?
Il problema è nelle librerie da Linkare.
Ne manca una anx721
OpenGL32.lib GLu32.lib e GLaux.lib.

Loading