Pregunta

¿Cuáles son los pasos básicos para compilar una aplicación OpenGL usando GLUT (Kit de herramientas de utilidad OpenGL) en Visual C++ Express Edition?

¿Fue útil?

Solución

  1. Si no tiene Visual C++ Express Edition (VCEE), descargue e instale VCEE.
  2. La instalación predeterminada de las compilaciones de Visual C++ Express Edition para la plataforma .Net.Necesitaremos compilar para la plataforma Windows, ya que OpenGL y GLUT aún no son totalmente compatibles con .Net.Para ello necesitamos el SDK de la plataforma Microsoft.(Si está utilizando una versión anterior de VCEE, descargue e instale el SDK de plataforma Microsoft.Será necesario configurar Visual C++ Express Edition para compilarlo para la plataforma Windows.Todas estas instrucciones están disponibles. aquí.)
  3. Si no tienes GLUT, descarga y descomprime Nate Robin's Puerto de Windows de GLUT.
  4. Agregar glut.h para usted SDK de plataforma/incluye/GL/ directorio
  5. Vincular el proyecto con glut.lib.(Ir a VCEE Propiedades del proyecto -> Directorios de enlazadores adicionales y agregue el directorio que tiene glut.lib.
  6. Agregar glut.dll hacia Windows/Sistema32 Directorio, para que todos los programas que usan GLUT pueden encontrarlo en tiempo de ejecución.

Su programa que usa GLUT u OpenGL debería compilarse ahora en Visual C++ Express Edition.

Otros consejos

El port GLUT en el sitio de Nate Robin es de 2001 y tiene algunas incompatibilidades con versiones de Visual Studio más recientes (.NET 2003 y posteriores).La incompatibilidad se manifiesta en errores sobre la redefinición de exit().Si ve este error, hay dos posibles soluciones:

  1. Reemplace la exit() prototipo en glut.h con el que esta en tu stdlib.h para que coincidan.Esta es probablemente la mejor solución.
  2. Una solución más fácil es #define GLUT_DISABLE_ATEXIT_HACK antes de ti #include <gl/glut.h> en su programa.

(Crédito adeudado:Originalmente vi este consejo en el Sitio web de la mesa de ayuda de TAMU.)

Yo mismo he estado usando el enfoque n.° 1 desde que salió .NET 2003 y he usado el mismo método modificado. glut.h con VC++ 2003, VC++ 2005 y VC++ 2008.

Aquí está la diferencia para glut.h que uso y que hace el n.° 1 (pero en el modo apropiado). #ifdef blocks para que siga funcionando con versiones anteriores de Visual Studio):

--- c:\naterobbins\glut.h       2000-12-13 00:22:52.000000000 +0900
+++ c:\updated\glut.h    2006-05-23 11:06:10.000000000 +0900
@@ -143,7 +143,12 @@

 #if defined(_WIN32)
 # ifndef GLUT_BUILDING_LIB
-extern _CRTIMP void __cdecl exit(int);
+/* extern _CRTIMP void __cdecl exit(int);  /* Changed for .NET */
+#  if _MSC_VER >= 1200
+extern _CRTIMP __declspec(noreturn) void __cdecl exit(int);
+#  else
+extern _CRTIMP void __cdecl exit(int);
+#  endif
 # endif
 #else
 /* non-Win32 case. */
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top