2012-09-11 24 views
8

estoy leyendo a través de un tutorial "Introducción a OpenGL" y me encontré con este texto:Incluir OpenGL Bibliotecas en C++, Windows 7

"Si está utilizando C/C++, entonces primero debe establecer

hasta un entorno de compilación (proyecto de Visual Studio, archivo MAKE de GNU, archivo CMake, etc.) que puede vincular a OpenGL. En Windows, debe vincular estáticamente a una biblioteca llamada OpenGL32.lib (tenga en cuenta que aún enlaza con OpenGL32.lib si estamos construyendo un ejecutable de 64 bits. La parte "32" no tiene sentido). Visual Studio, y la mayoría de los compiladores de Windows, vienen con esta biblioteca ".

Estoy tratando de escribir mis archivos fuente usando vim, no quiero usar un IDE como VS, y desde mi entender las bibliotecas OpenGL vienen con Windows 7 (corríjanme si estoy equivocado) . Después de este punto, el artículo no entra en más detalles sobre cómo incluir las librerías OpenGL, y mi verdadera pregunta es, ¿cómo incluyo y uso las bibliotecas OpenGL en mis archivos fuente?

¿Es tan simple como escribir #include <name of lib> o necesito hacer algo más con mi entorno de Programación como editar mis variables de ruta?

Editar: Estoy usando el MinGW g ++/compilador gcc

+0

¿Qué compilador va a utilizar? –

+0

Depende del enlazador utilizado, ¿está usando Visual Studio? Makefile? CMake? ¿algo más? – dutt

+2

Los encabezados ciertamente no vienen con Windows, pero su compilador debería tenerlos. Si está en vim, deberá proporcionar los encabezados y la biblioteca como argumentos para el compilador y el enlazador. Si usa make, eso sucederá en los archivos make, de lo contrario, tendrá que hacerlo manualmente. – ssube

Respuesta

5

Para obtener acceso a los archivos de inclusión, se necesita una biblioteca de soporte especial. Hay más de uno de estos, pero recomendaría GLEW. Puede encontrar la interfaz GLEW en http://glew.sourceforge.net/.

El motivo es que solo una versión muy antigua de los encabezados de OpenGL está disponible por defecto en Windows. La interfaz más nueva está disponible indirectamente; tienes que pedir direcciones de función. Sin embargo, GLEW lo hace por ti.

Así que solo tiene que incluir < GL/glew.h>, y hacer alguna inicialización con glewInit();

Esto es compatible tanto con Linux como con Windows, especialmente cuando usa MinGW. Cuando se enlaza, utilizo el siguiente:

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

puedo recomendar el uso de un makefile genérico, ver http://sourceforge.net/projects/gcmakefile/

Observe que también tiene que configurar un context para OpenGL, antes de inicializar GLEW. Esto se hace de manera diferente según el entorno. Está hecho cuando abres una ventana. Para bibliotecas portátiles, puedo recomendar la biblioteca glfw o freeglut.

+3

GLEW no hará la configuración de contexto para usted. También necesita vincularse con opengl32.lib, que en su caso se hace con esa bandera del enlazador '-lopengl32' que usted propone. – datenwolf

+0

Gracias, agregué información sobre la creación de contexto. –