Installare librerie openGL
Ciao a tutti!
(Sono nuova del forum, ho letto il regolamento, spero non mi sia sfuggito niente).
Ecco il mio problema attuale: sto cercando di installare su Linux le librerie gl, glu, glut per la programmazione grafica in openGL. Pensavo di averlo installato da terminale ma anche adesso non mi consente di compilare i vari programmi, l'errore che mi segnala è questo: "gcc: error trying to exec 'cc1plus': execvp: File o directory non esistente".
Ringrazio per l'attenzione, spero in un vostro aiuto
(Sono nuova del forum, ho letto il regolamento, spero non mi sia sfuggito niente).
Ecco il mio problema attuale: sto cercando di installare su Linux le librerie gl, glu, glut per la programmazione grafica in openGL. Pensavo di averlo installato da terminale ma anche adesso non mi consente di compilare i vari programmi, l'errore che mi segnala è questo: "gcc: error trying to exec 'cc1plus': execvp: File o directory non esistente".
Ringrazio per l'attenzione, spero in un vostro aiuto
Risposte
Ciao e benvenuto/a,
le librerie dovresti trovarle nel pacchetto "freeglut".
Per compilare devi poi aprire un terminale, portarti nella cartella che contiene il sorgente e usare il seguente comando
dove gli ultimi tre parametri sono le librerie da linkare (attenzione a maiuscole e minuscole).
Fammi sapere se risolvi, ciao.
le librerie dovresti trovarle nel pacchetto "freeglut".
Per compilare devi poi aprire un terminale, portarti nella cartella che contiene il sorgente e usare il seguente comando
gcc -o eseguibileCheVuoi sorgente.c -lGL -lGLU -lglut
dove gli ultimi tre parametri sono le librerie da linkare (attenzione a maiuscole e minuscole).
Fammi sapere se risolvi, ciao.
L'impressione è che non siano installati correttamente i tool di sviluppo. Quale distribuzione di linux stai usando? Ubuntu?
Ho installato il pacchetto "freeglut" da terminale ma non mi compila comunque, forse ho sbagliato qualcosa.
Comunque sì sto usando Ubuntu
ps grazie per il bennvenuto
Comunque sì sto usando Ubuntu
ps grazie per il bennvenuto

"Pinkyp":
Ho installato il pacchetto "freeglut" da terminale ma non mi compila comunque, forse ho sbagliato qualcosa.
Comunque sì sto usando Ubuntu
ps grazie per il bennvenuto
Hai installato il pacchetto build-essential? L'errore è sempre quello di prima? Sei sicuro di aver dato il comando esattamente come l'avevo postato?
"minomic":
Hai installato il pacchetto build-essential? L'errore è sempre quello di prima? Sei sicuro di aver dato il comando esattamente come l'avevo postato?
Ho installato in generale freeglut. Sì sono sicura di aver scritto lo stesso comando perchè so come si compila.
L'errore però in effetti è cambiato, te lo incollo pari pari: fatal error: Gl/gl.h: File o directory non esistente
compilation terminated.
Per prima cosa, maiuscole o minuscole contano in linux. Per cui non ho mai visto usare "Gl" come nome della cartella in cui sono incluse le librerie, piuttosto dovrebbe essere "GL" (o al massimo "gl").
"apatriarca":
Per prima cosa, maiuscole o minuscole contano in linux. Per cui non ho mai visto usare "Gl" come nome della cartella in cui sono incluse le librerie, piuttosto dovrebbe essere "GL" (o al massimo "gl").
Eh sì io ho sempre usato "GL/gl.h". A questo punto sospetto che sia un problema nel codice... Prova a correggere con le maiuscole, altrimenti potrebbero mancare gli header (anche se in realtà mi sembra strano) e li possiamo trovare in qualche pacchetto come "mesa-common-dev".
"minomic":
A questo punto sospetto che sia un problema nel codice... Prova a correggere con le maiuscole
Il codice l'ho copiato dal professore e ho provato vari suoi programmi diversi ma mi danno tutti lo stesso errore. Comunque che cosa dovrei correggere nel codice? Non ho capito
"apatriarca":
Per prima cosa, maiuscole o minuscole contano in linux. Per cui non ho mai visto usare "Gl" come nome della cartella in cui sono incluse le librerie, piuttosto dovrebbe essere "GL
In effetti è vero, potrei cambiare il nome della directory con il comando sudo, ma non ho capito: cosa cambia?
Se non sono cose private potresti per favore postare il codice (tra i tag code) così ci accertiamo che il problema non sia lì?
"minomic":
Se non sono cose private potresti per favore postare il codice (tra i tag code) così ci accertiamo che il problema non sia lì?
non so cosa siano i tag code (non ho mai scritto su un forum online), questo è il codice:
#include<GL/glut.h> #include<GL/glu.h> #include<Gl/gl.h> void redraw() { glClearColor(0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glVertex2f(0.0f, 0.0f); glEnd(); glFlush(); } void main(int argc, char** argv[]) { glutInitDisplayMode(GLUT_SINGLE); glutInitWindowPosition(100,200); glutInitWindowSize(320,200); glutcreateWindow("infogr"); glutDisplayFunc(redraw); glutMainLoop(); }
L'errore è qui:
Come ti diceva prima apatriarca devi mettere
#include<Gl/gl.h>
Come ti diceva prima apatriarca devi mettere
#include<GL/gl.h>
Messo, ma l'errore che mi segnala in compilazione è sempre lo stesso:
fatal error: GL/glut.h: File o directory non esistente
compilation terminated.
fatal error: GL/glut.h: File o directory non esistente
compilation terminated.
Ah e ci sono errori nella clearColor e nella createWindow. Questo è il codice corretto:
#include<GL/glut.h> #include<GL/glu.h> #include<GL/gl.h> void redraw() { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glVertex2f(0.0f, 0.0f); glEnd(); glFlush(); } void main(int argc, char** argv[]) { glutInitDisplayMode(GLUT_SINGLE); glutInitWindowPosition(100,200); glutInitWindowSize(320,200); glutCreateWindow("infogr"); glutDisplayFunc(redraw); glutMainLoop(); }
Ti ho aggiunto io i tag code. Si tratta di inserire il codice tra "[ code ]" (senza virgolette e spazi tra le parentesi e il nome) e "[/ code ]". Quando inserisci il testo nell'editor completo, invece che usando la risposta rapida, c'è un pulsante per inserire automaticamente questi tag nel codice senza doverli scrivere a mano. Se provi a modificare il tuo vecchio post dovresti poterli vedere.
EDIT: scrivi "freeglut.h" al posto di "glut.h".
EDIT: scrivi "freeglut.h" al posto di "glut.h".
No scusate non avevo visto un altro errore nel codice. Questo è quello corretto, testato e funzionante:
#include<GL/glut.h> #include<GL/glu.h> #include<GL/gl.h> void redraw() { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glVertex2f(0.0f, 0.0f); glEnd(); glFlush(); } void main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowPosition(100,200); glutInitWindowSize(320,200); glutCreateWindow("infogr"); glutDisplayFunc(redraw); glutMainLoop(); }
Ma esiste il file /usr/include/GL/gl.h / glut.h? Non è che devi installare la versione "per sviluppatori" di freeglut? Si dovrebbe chiamare freeglut-dev, o qualcosa di simile.
"claudio86":
Ma esiste il file /usr/include/GL/gl.h / glut.h? Non è che devi installare la versione "per sviluppatori" di freeglut? Si dovrebbe chiamare freeglut-dev, o qualcosa di simile.
Effettivamente ho controllato e tra i pacchetti che ho installato ci sono "freeglut3" e "freeglut3-dev".
Non pensavo ci fossero così tanti errori. Ho modificato come hai detto tu però mi da ancora l'errore: fatal error: GL/glut.h: File o directory non esistente compilation terminated.
"Pinkyp":
Non pensavo ci fossero così tanti errori. Ho modificato come hai detto tu però mi da ancora l'errore: fatal error: GL/glut.h: File o directory non esistente compilation terminated.
Allora prova come ti hanno detto a mettere freeglut al posto di glut. Sinceramente non mi ricordo quali pacchetti avevo installato sul mio ubuntu, però comunque adesso il resto del codice è corretto.
"minomic":
Allora prova come ti hanno detto a mettere freeglut al posto di glut.
Cioè dove dovrei metterlo?