View Full Version : [OpenGL] Programmino che disegna in 2D
Sto provando a fare un programmino con le OpenGl usando le GLUT come librerie ausiliarie, ma nn so come far compilare il programma con il Dev-Cpp...
mi spiego meglio... ho scritto un programmino che nn fà assolutamente niente tranne che utlizza una funzione delle glut... e già questo nn me lo compila.
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <unistd.h>
int main( )
{
glutInit(&argc, argv);
return 0;
}
Le glut le ho installate seguendo un breve tutorial...
Questo è l'errore che mi restituisce Dev-Cpp:
[Linker error] undefined reference to `__glutInitWithExit'
ld returned 1 exit status
Aiutoooooo!
RaouL_BennetH
22-08-2005, 16:48
Sto provando a fare un programmino con le OpenGl usando le GLUT come librerie ausiliarie, ma nn so come far compilare il programma con il Dev-Cpp...
mi spiego meglio... ho scritto un programmino che nn fà assolutamente niente tranne che utlizza una funzione delle glut... e già questo nn me lo compila.
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <unistd.h>
int main( )
{
glutInit(&argc, argv);
return 0;
}
Le glut le ho installate seguendo un breve tutorial...
Questo è l'errore che mi restituisce Dev-Cpp:
[Linker error] undefined reference to `__glutInitWithExit'
ld returned 1 exit status
Aiutoooooo!
Non me ne intendo di Opengl ma il tuo mi sembra un errore dovuto al fatto che o devi passare qualche opzione al compilatore relativo alle librerie,oppure in dev-cpp devi aggiugnere le librerie necessarie prima di compilare,qualcosa tipo:
Opzioni Progetto\Parametri\Aggiungi Libreria o Oggetto (o similare),oppure passare le opzioni al compilatore tipo:
-libopengl32 -llibglut32
Mi spieghi che differenza c'è a passare librerie al linker nelle opzioni del progetto rispetto alle opzioni generali di compilazione?
L'errore del primo post lo dà se provo a compilare un file singolo, senza progetto.
Facendo un progetto (con o senza -libopengl32 -llibglut32 nelle opzioni del linker del progetto) mi dà il seguente errore:
1 C:\...\main.cpp In file included from main.cpp
50 C:\Dev-Cpp\include\GL\glut.h redeclaration of C++ built-in type `short'
C:\...\Makefile.win [Build Error] [main.o] Error 1
Edit: Errore mio, avevo fatto un progetto in c++ invece che in c
RaouL_BennetH
22-08-2005, 17:02
Mi spieghi che differenza c'è a passare librerie al linker nelle opzioni del progetto rispetto alle opzioni generali di compilazione?
mi riferivo proprio a questo.Il suggerimento era rivolto a controllare che la dir delle glut fosse inserita nelle librerie di dev-cpp.
L'errore del primo post lo dà se provo a compilare un file singolo, senza progetto.
Facendo un progetto (con o senza -libopengl32 -llibglut32 nelle opzioni del linker del progetto) mi dà il seguente errore:
1 C:\...\main.cpp In file included from main.cpp
50 C:\Dev-Cpp\include\GL\glut.h redeclaration of C++ built-in type `short'
C:\...\Makefile.win [Build Error] [main.o] Error 1
[/quote]
ora provo anche io...
mi riferivo proprio a questo.Il suggerimento era rivolto a controllare che la dir delle glut fosse inserita nelle librerie di dev-cpp.
ora provo anche io...
Scusami... il fatto è che avevo fatto un progetto c++ invece che c...
Ora da lo stesso errore di prima.. :mc:
Scusami... il fatto è che avevo fatto un progetto c++ invece che c...
Ora da lo stesso errore di prima.. :mc:
Le opzioni di compilazione non servono solo a determinare come compilare il sorgente ma servono anche per indicare al linker (GNU ld) come effettuare il linking dinamico delle librerie che hai utilizzato e quindi effettuare una "risoluzione dei simboli a runtime".
Il tuo errore è infatti un problema di linking. Il codice, pur essendo corretto (a parte unistd.h che non capisco cosa c'entri :D ) non riesce a effettuare il linking proprio per mancanza dei parametri corretti. Il prefisso da inserire nei parametri di compilazione per un linking corretto è, come ti ha suggerito Raoul, il flag "-lnomelib" dove nomelib è il nome del file di libreria con cui vuoi effettuare il linking. Non uso dev-c++ quindi non posso essere piu' specifico in merito, ma se sai dove mantieni gli header e le librerie non dovrebbe essere difficile aggiustare il tutto. Quello che ti suggerisco io è trovare il dev-pak di freeglut per dev-c++. Esso installa e configura automaticamente la libreria GLUT cosi che quando sceglierai come tipo di progetto un progetto "glut" avrai già a disposizione i parametri necessari per una corretta compilazione ed un linking che va a buon fine con i giusti path.
Ti consiglio il dev-pak nello specifico perchè utilizzando una comune libreria GLUT per Windows corri il rischio di non avere una libreria linkabile con il binario che nello specifico la tua versione di compilatore va a creare in fase di compilazione e quindi avere problemi di compatibilità binaria in fase di linking. Con un dev-pak invece sei tranquillo di evitare questi problemi ed inoltre freeglut attualmente è la migliore implementazione GLUT dai tempi di Mark Kilkgard :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.