[C con Clase] OpenGL

Steven Davidson steven en conclase.net
Mie Feb 21 10:31:31 CET 2007


Hola David,

El pasado 2007-02-20 22:19:39, DavidIRE escribió:

D> Hola,
D> Quiero usar la biblioteca gráfica de OpenGL con Microsoft Visual C++ pero 
D> tengo problemas al linkear los ficheros objeto. Uso el sistema operativo 
D> Microsoft Windows XP Media Center Edition.

[CORTE]

D> Y el compilador no devuelve error alguno. Pero al linkear el fichero objeto 
D> obtenido (con el botón Build del IDE) obtengo el siguiente mensaje de error:
D> --------------------Configuration: prueba1 - Win32 Debug--------------------
D> Linking...
D> LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol 
D> _WinMain en 16
D> Debug/prueba1.exe : fatal error LNK1120: 1 unresolved externals
D> Error executing link.exe.
D> prueba1.exe - 2 error(s), 0 warning(s)
D> No entiendo por qué el linker devuelve esos errores. Creo que tiene que ver 
D> algo con Unicode, pero no estoy seguro. ¿alguien sabe qué puede estar 
D> sucediendo y cómo se puede solucionar?

El problema está en la configuración del proyecto. Al usar un proyecto de MS-Windows, por defecto se ejecutará la función 'WinMain()'. Sin embargo, estamos usando GLUT, que internamente lo haráa, pero queremos que empiece por la típica función de 'main()'.

La solución es la siguiente:
1. Entra en las opciones del proyecto.
2. Elige la pestaña "Linker", para el enlazador.
3. En el cuadro que pone "Object/library Modules", agrega lo siguiente:
glut32.lib glu32.lib opengl32.lib
4. Bajo "Project Options", escribe:
/entry:"mainCRTStartup"
5. Pulsa "OK".

Lo que hemos hecho es indicar las tres bibliotecas que queremos usar: GLUT, GLU, y OpenGL. Luego, hemos indicado al enlazador que empiece el programa a partir de "mainCRTStartup".


Espero que esto te ayude.

Steven


Más información sobre la lista de distribución Cconclase