Installare librerie openGL

Pinkyp
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

Risposte
minomic
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
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.

apatriarca
L'impressione è che non siano installati correttamente i tool di sviluppo. Quale distribuzione di linux stai usando? Ubuntu?

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 :)

minomic
"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?

Pinkyp
"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.

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").

minomic
"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".

Pinkyp
"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?

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ì?

Pinkyp
"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();
}

minomic
L'errore è qui:
#include<Gl/gl.h>

Come ti diceva prima apatriarca devi mettere
#include<GL/gl.h>

Pinkyp
Messo, ma l'errore che mi segnala in compilazione è sempre lo stesso:
fatal error: GL/glut.h: File o directory non esistente
compilation terminated.

minomic
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();
}

apatriarca
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".

minomic
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();
}

claudio862
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.

minomic
"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".

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.

minomic
"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.

Pinkyp
"minomic":
Allora prova come ti hanno detto a mettere freeglut al posto di glut.


Cioè dove dovrei metterlo?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.