2012-09-11 13 views
8

sto leggendo attraverso un tutorial "Primi passi con OpenGL" e mi sono imbattuto in questo testo:Includere OpenGL Biblioteche in C++, Windows 7

"Se si sta utilizzando C/C++, quindi è necessario impostare un ambiente di compilazione (progetto Visual Studio, makefile GNU, file CMake, ecc.) che può essere collegato a OpenGL. Sotto Windows, è necessario collegare staticamente a una libreria chiamata OpenGL32.lib (si noti che si collega ancora a OpenGL32.lib se si stiamo costruendo un eseguibile a 64 bit, la parte "32" è priva di significato.) Visual Studio e la maggior parte dei compilatori di Windows sono dotati di questa libreria. "

Sto solo cercando di scrivere i miei file di origine utilizzando vim, io non voglio usare un IDE come VS, e dalla mia comprensione delle librerie OpenGL vengo con Windows 7 (correggetemi se sbaglio) . Dopo questo punto l'articolo non entra più in dettaglio su come includere le librerie OpenGL, e la mia vera domanda è, come posso includere e usare le librerie OpenGL nei miei file sorgente?

È semplice come scrivere #include <name of lib> o devo fare qualcos'altro con il mio ambiente di programmazione come modificare le variabili del percorso?

Edit: sto usando il MinGW g ++/compilatore gcc

+0

Quale compilatore userete? –

+0

Dipende dal linker utilizzato, stai usando Visual Studio? Makefile? CMake? qualcos'altro? – dutt

+2

Le intestazioni certamente non vengono con Windows stesso, ma il tuo compilatore dovrebbe averle. Se sei in vim, dovrai fornire le intestazioni e la libreria come argomenti al compilatore e al linker. Se stai usando make, ciò avverrà nei file make, altrimenti dovrai farlo manualmente. – ssube

risposta

5

Per ottenere l'accesso ai file di inclusione, è necessario un libreria di supporto speciale. Ce ne sono più di uno, ma consiglierei GLEW. È possibile trovare l'interfaccia GLEW allo http://glew.sourceforge.net/.

Il motivo è che solo una versione molto vecchia di intestazioni OpenGL è disponibile come predefinita su Windows. La nuova interfaccia è disponibile indirettamente; devi chiedere gli indirizzi delle funzioni. Questo è comunque fatto da GLEW per te.

Quindi è sufficiente includere < GL/glew.h> e eseguire un'inizializzazione con glewInit();

Questo è compatibile con Linux e Windows, soprattutto se si utilizza MinGW. Quando si collegano, io uso il seguente:

MY_LIBS = -lglew32 -lopengl32 -lWs2_32 -lole32 -lcomctl32 -lgdi32 -lcomdlg32 -luuid

posso raccomandare l'uso di un makefile generica, vedi http://sourceforge.net/projects/gcmakefile/

Si noti inoltre che è necessario impostare un context per OpenGL, prima di inizializzare GLEW. Questo viene fatto in modo diverso a seconda dell'ambiente. È fatto quando apri una finestra. Per le librerie portatili, posso consigliare la libreria glfw o freeglut.

+3

GLEW non eseguirà l'impostazione del contesto per te. Inoltre devi ancora collegarti con opengl32.lib, che nel tuo caso è fatto con il flag '-lopengl32' che tu proponi. – datenwolf

+0

Grazie, ho aggiunto informazioni sulla creazione del contesto. –