Newsgroup: it.comp.programmare.win32
Titolo: test con openGL

Ciao a tutti,
come mai il seguente programma compilato con
Visual C++ 6, mi da errore in fase di linking?
grazie a chi mi vorra' rispondere.
-----------------------------------------------------------------
Linking...
opengltest.obj : error LNK2001: unresolved external symbol __imp__glFlush@0
opengltest.obj : error LNK2001: unresolved external symbol __imp__glClear@4
opengltest.obj : error LNK2001: unresolved external symbol __imp__glClearColor@16
opengltest.obj : error LNK2001: unresolved external symbol _auxInitWindowA@4
opengltest.obj : error LNK2001: unresolved external symbol _auxInitPosition@16
opengltest.obj : error LNK2001: unresolved external symbol _auxInitDisplayMode@4
Debug/opengltest.exe : fatal error LNK1120: 6 unresolved externals
-----------------------------------------------------------------
Questo è il listato:
-----------------------------------------------------------------
// shortest.c
// The shortest OpenGL program possible
#include "stdafx.h"
#include <windows.h> // Standard Window header required
#include <conio.h>    // Console I/O functions
#include <gl\gl.h>       // OpenGL functions
#include <gl\glaux.h> // AUX Library functions
int main(void)  {
 // These are the AUX functions to set up the window
 auxInitDisplayMode(AUX_SINGLE | AUX_RGBA);
 auxInitPosition(100,100,250,250);
 auxInitWindow("Hello World!... OpenGL Program");
 // These are the OpenGL functions that do something in the window
 glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
 glClear(GL_COLOR_BUFFER_BIT);
 glFlush();
 // Stop and wait for a keypress
 cprintf("Premere un tasto per chiudere la finestra\n");
 getch();
 return 0;
}
----------------------------------------------------------------- 

 Visual C++ 6, mi da errore in fase di linking?
Domanda banale ... hai linkato le librerie di opengl?
Gli unresolved external sono semplici errori che ti dicono che il linker non 
ha trovato nè negli obj nè nelle lib referenziate le funzioni che hai usato 
nel programma.
Aggiungendo opengl32.lib dovresti risolvere.
-- 
Raffaele Rialdi
Microsoft .NET MVP 
http://mvp.support.microsoft.com
 -
http://italy.mvps.org
 UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org
 Weblog: 
http://blogs.ugidotnet.org/raffaele
Vieni al TechEd? (
http://www.mseventseurope.com/teched/07/Developers
)
Fatti sentire e incontriamoci a Barcelona! 

 Aggiungendo opengl32.lib dovresti risolvere.
eppure nella cartella \Lib c'e' il file opengl32.lib...
grazie per la risposta.
ciao

 grazie per la risposta.
prego


 Devi ovviamente referenziarla nel progetto. Il fatto che sia su disco da qualche parte non è sufficiente.
hai proprio ragione: ho referenziato opengl32.lib nelle opzioni
del linker ed ora ottengo meta' degli "unresolved external symbol"
che ottenevo prima.
Mi sono rimasti quelli che iniziano con __aux.. ad es. _auxInitWindow
Come faccio a sapere in quale libreria si trovano?
In altre parole, dovo trovo la corrispondenza tra file .h (in questo
caso "\gl\glaux.h") ed il file di libreria contenente la funzione?
intanto grazie per avermi indirizzato sulla giusta strada! 

 ha scritto nel messaggio news:471c737d$0$37201$4faf...@reader3.news.tin.it...

Mi autorispondo: sono i files GLAUX.LIB e GLU32.LIB
mi rimane il dubbio di come fare a trovarli automaticamente...
boh..
ciao 

 boh..
Ciao, sono ora di ritorno ...
di solito il nome delle lib č specificato nella documentazione della 
funzione.
In questo caso specifico non ho proprio trovato la doc di  _auxInitWindow e 
quindi ti tocca usare lib in modo ricorsivo sulle varie lib indicate nella 
path di LIB.
Apri la command prompt del compilatore (se usi 
vs.net
 nel menu start trovi 
la sua command prompt) e fai "set". Sotto lib vedi le path delle librerie 
usabili.
Non mi viene in mente nulla di piů rapido.


 Non mi viene in mente nulla di piů rapido.
prova a dare un'occhiata qua:
http://www.codeproject.com/debug/LibView.asp
c'e' un programma che serve ad analizzare i files lib.
ciao e grazie