«[Figlio dell'uomo] Porgi l'orecchio e ascolta le parole di KGB
e applica la tua mente alla SUA istruzione
» Pv. 22,17

Qui si straparla di vari argomenti:
1. Il genere dei pezzi è segnalato da varie immagini, vedi Legenda
2. Istruzioni per i nuovi lettori (occasionali e non) qui
3. L'ultimo corto è questo

venerdì 4 settembre 2015

KGB vs la OpenGL (1/??)

Nota: siccome il pezzo odierno mi è venuto un po' troppo corposo (circa il triplo di un pezzo normale e il doppio di uno lungo) ho deciso di dividerlo su tre giorni: di seguito la prima parte...

Probabilmente il mio interesse per i videogiochi sarà da molti lettori ritenuto infantile. Forse... eppure ognuno si svaga a modo suo...
Per divertirmi talvolta mi capita, un po' masochisticamente, di impazzire cercando di fare qualcosa che non mi riesce: di seguito la cronaca di come abbia sbattuto la testa su tutta una serie di problemi assurdi che mi sono andato spontaneamente a cercare...

Una mia amica sta studiando il linguaggio C e, di tanto in tanto, mi interpella per qualche esercizio.
Il C fu il secondo linguaggio che imparai (dopo il BASIC del VIC20) e, anche se l'ho utilizzato raramente (*1), mi è sempre rimasto nel cuore.
A forza di rispondere, non senza difficoltà, alle domande che via via mi venivano poste mi è tornato voglia di lavorarci un po'. Non essendo io una persona semplice, l'idea di programmare in C e basta non mi stimolava però abbastanza. Mi è così venuta in mente l'idea di imparare a usare la libreria OpenGL utilizzata su linux (e altrove) per la grafica: supponevo infatti che per l'utilizzo nativo si adoperasse il linguaggio C.

Di seguito quindi le vicissitudini di un incompetente (e molto rugginoso!) programmatore C alla prese con la libreria OpenGL...

Primo giorno
Per prima cosa cercai su Google un breve corso sulla OpenGL dando per scontato che con il C non avrei avuto problemi. Essendo pigro mi fermai al primo sito presentatomi da Google che, a una lettura superficiale, mi sembrò comunque ben fatto: OpenGL Tutorial. Ben 18 esempi di complessità crescente che coprivano gli aspetti principali della libreria...
Oltretutto c'erano le istruzioni per preparare l'ambiente di sviluppo anche per Linux: operazione che mi preoccupava non poco dato che si tratta dei tipici dettagli tecnici che più odio e meno mi riescono.

Per prima cosa, seguendo una lista fornita dal minicorso, dovetti installare un buon numero di librerie usate per lo sviluppo. Poi, provando a lanciare uno script che avrebbe dovuto compilare tutti gli esempi, iniziarono i problemi. La lista delle librerie non era aggiornata oppure, semplicemente, non andava bene per Mint...
Così dovetti fare qualche ricerca su Google per capire quali fossero le librerie mancanti. Dopo aver installato altre due o tre librerie aggiuntive, con mia sorpresa, lo script riuscì a compilare tutti gli esempi!
“È fatta!” pensai...

A questo punto decisi di installare un'IDE (ambiente di sviluppo integrato) specifica per il C piuttosto che affidarmi al pachidermico Netbean che uso per Java. Il corso suggeriva “Qt Creator” e così cercai il sito e, dopo aver navigato attraverso una lunga serie di licenze e avvisi, arrivai a scaricare il programma vero e proprio. A questo punto scoprii che per installarlo era necessario adoperare un “piccolo” programma di 30Mb!
A questa scoperta lasciai perdere “Qt Creator”: da una parte la lista delle licenze mi aveva irritato e, da un'altra, pensai che se il programmino per scaricare l'IDE vera e propria era di ben 30Mb allora tale ambiente non poteva essere efficiente...

Iniziai così a cercare un'alternativa agile e finii per provare l'IDE Anjuta che mi fece un'ottima impressione perché leggera come volevo. Il problema fu che era così leggera da non avere nemmeno un manuale di istruzioni o altra documentazione. Inoltre lo sviluppo si era interrotto nel 2012 e questo non mi sembrava un buon segno...
Comunque non mi scoraggiai e decisi di provare a utilizzarla: e subito iniziarono i problemi...

Già il primo esempio non riuscivo a compilarlo. L'IDE mi segnalava che alcuni archivi di header non erano disponibili.
Se fossi stato furbo, o semplicemente meno arrugginito, avrei iniziato a chiedermi come mai lo script che avevo lanciato dopo aver scaricato gli esempi era riuscito a compilarli tutti: suppongo che dopo un po' sarei arrivato alla conclusione giusta...
Invece mi impuntai a cercare di individuare e installare le librerie mancanti. Una la trovai su Synaptic, di un'altra scaricai e compilai il sorgente e di una terza... bo, non ricordo, ma in qualche maniera riuscii a far sparire tutti i messaggi di errore del preprocessore...
Comunque procedevo estremamente a tentoni: anche solo specificare i percorsi a queste nuove librerie non fu semplice in quanto non avevo istruzioni e non sapevo dove operare. Come al solito Google mi venne in soccorso...
Tutto risolto allora?
Assolutamente no! Per ogni messaggio di errore eliminato ne comparirono altri tre nuovi...
Alcuni dovuti, supposi, alle versioni delle librerie che stavo usando altri, invece, mi erano completamenti oscuri.
Frustrato, per quel giorno, decisi di lasciar perdere...

Secondo giorno
Dopo qualche giorno tornai alla carica. Decisi che il primo passo sarebbe stato quello di rivolgermi a un mio amico ingegnere esperto di tutto: quando Google fallisce mi rivolgo a lui per trovare la soluzione...
Gli spiegai brevemente la situazione e alla fine mi convinse ad abbandonare Anjuta per passare al famigerato Qt Creator. E cosi il programmino di 30Mb si scaricò e mi installò circa un 1Gb di roba...
Appena lo avviai e provai ad aprire uno degli esempi scaricati dal sito OpenGL Tutorial subito si chiuse per un errore interno! Non credevo ai miei occhi e quindi riprovai ottenendo però il medesimo risultato...
Cioè, scarico 1Gb di IDE e poi questa non riesce neppure ad aprire un singolo archivio .cpp senza bloccarsi?!
Proprio così...

Così iniziai, di nuovo, a cercare su Google scoprendo che si trattava di un problema abbastanza comune (evidentemente il mio scetticismo verso un'IDE il cui programmino di installazione è di 30Mb non era proprio ingiustificato!) e iniziai a tentare le varie soluzioni a cominciare da quella più semplice, e molto Windows, di riavviare la macchina. Ma nessuna soluzione sembrava funzionare.
Alla fine provai, invece che a importare un progetto esistente, a crearne uno nuovo copiando e incollando il codice sorgente del primo esempio.
In questa maniera l'IDE non si bloccò ma mi ritrovai con i soliti problemi di compilazione...
Frustrato e arrabbiato decisi, per quel giorno, di lasciar perdere...

Nota (*1): l'ultima volta fu per la tesi tanti anni fa...

Nessun commento:

Posta un commento