2008-08-18 21 views

Respuesta

9
  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. Tendremos que crear para la plataforma de Windows ya que OpenGL y GLUT aún no son totalmente compatibles con .Net. Para esto necesitamos el Microsoft Platform SDK. (Si está utilizando una versión anterior de VCEE, descargue e instale el Microsoft Platform SDK. Visual C++ Express Edition deberá configurarse para compilar para la plataforma Windows. Todas estas instrucciones están disponibles here.)
  3. Si no tiene GLUT, descarga y descomprime Nate Robin's Windows port of GLUT.
  4. Añadir glut.h a su SDK de la plataforma/include/GL/ directorio
  5. Enlace del proyecto con glut.lib. (Ir a VCEE Propiedades del proyecto -.> Adicional Enlazador Directorios y añadir el directorio que tiene glut.lib
  6. Añadir glut.dll a la de Windows/System32 , por lo que todos los programas utilizando GLUT puede encontrar en tiempo de ejecución.

Su programa que utiliza OpenGL GLUT o debe compilar en Visual C++ Express Edition ahora.

+0

¡Muchas gracias! Para aquellos de nosotros que no comprendemos del todo el paso 4, esto se traduce en el siguiente directorio para mí (como ejemplo): C: \ Archivos de programa \ Microsoft SDKs \ Windows \ 7.0a \ Include \ GL .Step 5's 'Lib 'directorio está en el mismo nivel que' Incluir '(en cuyo caso no necesita declarar y un directorio enlazador adicional). – Gazza

6

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

  1. Reemplazar el prototipo en exit()glut.h con el de su 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 que #include <gl/glut.h> en su programa.

(de crédito Debido: Originalmente vio este consejo sobre la TAMU help desk website.)

He estado usando el enfoque # 1 a mí mismo desde .NET 2003 salió, y han utilizado la misma modificada glut.h con VC++ 2003 , VC++ 2005 y VC++ 2008.

Aquí está el diff para la glut.h utilizo el que hace # 1 (pero en su caso #ifdef blocks de modo que aún funciona 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. */ 
+0

Baxissimo: Gracias por señalar este error común y su solución. He visto que casi todos los novatos de OpenGL se enfrentan a este error. –

Cuestiones relacionadas