Libreria OpenGL

francalanci
Salve a tutti mi servirebbe sapere dove posso scaricare le librerie OpenGL per linux ubuntu.
Ho trovato un sito che per installarle mi ha detto di scrivere questo su terminale "sudo apt-get install libgl1-mesa-dev" ma non credo che me le abbia installate qualcuno mi può dare una mano.
grazie in anticipo.

Risposte
Rggb1
Le librerie il cui nome finisce per "-dev" sono per sviluppo (development). Mesa non è propriamente OpenGL ma ha una sintassi compatibile.

Per quale motivo ti serve OpenGL?

francalanci
Devo fare un progetto di sistemi operativi real time. Il professore mi ha consigliato di guardare qualche progettino di qualche mio collega ma il problema è che non me li compila e il terminale mi dice che gli mancano le seguenti librerie:
#include
#include .

hamming_burst
Ciao,
a parte intallare le librerie, non è che devi dire al compilatore di linkare nel compilato, se è come penso ci sarà qualche opzione da attivare con gcc o il tuo compilatore...

francalanci
Come faccio ad attivarle con il gcc qualcuno sa come fare?
grazie in anticipo

Rggb1
Mi sa che ti serve freeglut3:
apt-get install freeglut3-dev

apatriarca
Ho cercato un po’ su internet ed è incredibile come la maggior parte delle persone consigli l'installazione di librerie come freeglut che hanno le OpenGL come dipendenza invece che il pacchetto che contiene effettivamente le OpenGL. Il consiglio più simpatico che ho trovato è stato quello di usare:
sudo apt-get build-dep tuxracer

Siccome tuxracer usa le OpenGL quel comando dovrebbe installarle. Sembra proprio che questo sia uno dei pochi casi in cui installare una libreria sia più semplice su Windows (fa parte del Windows Platform SDK) che su Linux.

A parte gli scherzi, credo che sia un'ottima idea quella di installare anche freeglut (che se non ricordo male dovrebbe supportare anche le ultime versioni delle OpenGL) e GLEW che permette di accedere più facilmente alle estensioni delle OpenGL (è fondamentale su Windows ma comunque molto utile anche su Linux). Una volta scritto il programma è comunque importante linkare le librerie corrette. Come hai compilato i tuoi programmi?

Rggb1
"apatriarca":
Ho cercato un po’ su internet ed è incredibile come la maggior parte delle persone consigli l'installazione di librerie come freeglut che hanno le OpenGL come dipendenza invece che il pacchetto che contiene effettivamente le OpenGL.

A parte il fatto che questo è usuale ché fa parte del modo di gestire un sistema Debian(*), in questo caso credo sia proprio ciò che serve poiché
... e il terminale mi dice che gli mancano le seguenti librerie:
#include
#include

e se servono le GLUT, su un sistema Linux deve installare freeglut.

(*) Non ci si deve preoccupare di ciò che manca: qualcuno (in genere un gestore di pacchetti) prepara un file con le dipendenze ben definite e viene recuperato tutto ciò che serve, in automatico. Certo, se ti metti a cercare su internet e capiti in forum di consigli bubuntu et similia, troverai normalmente centinaia di consigli-scemenza e pochi grani di saggezza.

apatriarca
Certo, ma era in effetti più che altro la varietà delle librerie scelte ad incuriosire.. Installare le dipendenze di tuxracer è certamente strano se quello che si vuole fare è programmare con le OpenGL.. Il link nel quale ho letto questo consiglio era più o meno a metà della prima pagina di Google (inutile fare pubblicità inserendolo). So come funziona il sistema di pacchetti di Debian ed è in effetti molto comodo (devo ammettere di preferire l'interfaccia testuale di apt che la maggior parte delle applicazioni grafiche con il medesimo scopo). In effetti ritengo che questo sia uno dei pochi casi in cui sia più facile in Windows che in Linux. In Windows è semplicemente già disponibile (non freeglut però e volendo installare quello tutti i vantaggi dell'avere le OpenGL installate si perdono totalmente).

Non avevo in effetti visto che aveva inserito GLUT, avevo letto in effetti glu.h che è normalmente inclusa all'interno delle OpenGL. In tal caso installare freeglut3-dev è senza dubbio la cosa migliore da fare.

Raptorista1
Per quanto riguarda la fase di compilazione, se quando cerchi di compilare ti dice che le funzioni di quelle librerie non sono definite significa che devi linkarle esplicitamente. Se compili da terminale con gcc dovrai aggiungere una flag del tipo
-lgl -lglut
o qualcosa di simile. Di certo se cerchi nella documentazione le "linking instructions" ti dice come fare.

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