gcc nomefile.c `sdl-config --cflags --libs` -o nomefile
quando però sono arrivato agli esempi che utilizzano OpenGl ho notato che gli errori circa riferimenti mancanti alle varie funzioni di OpenGL, ad esempio:
...
testgl.c:(.text+0x25e): undefined reference to `glPushAttrib'
testgl.c:(.text+0x26a): undefined reference to `glDisable'
testgl.c:(.text+0x276): undefined reference to `glDisable'
testgl.c:(.text+0x282): undefined reference to `glEnable'
testgl.c:(.text+0x28e): undefined reference to `glEnable'
testgl.c:(.text+0x2a2): undefined reference to `glBlendFunc'
...
la soluzione è abbastanza semplice, aggiungiamo -lGL per dire che vogliamo linkare la libreria di OpenGl:
gcc nomefile.c -lGL `sdl-config --cflags --libs` -o nomfile
notare che lo stesso vale nel caso facessimo uso anche di altre librerie, ad esempio "glut" :
gcc nomefile.c -lGL -lglut `sdl-config --cflags --libs` -o nomfile
se poi il nostro sorgente controlla che ci sia un define come ad esempio "HAVE_OPENGL" allora possiamo compilare cosi:
gcc nomefile.c -lGL -lglut `sdl-config --cflags --libs` -o nomfile -DHAVE_OPENGL
Nessun commento:
Posta un commento