Set 022010
 

Ora che abbiamo creato il nostro ambiente di sviluppo CodeBlocks + wxWidgets + MinGW su Windows cerchiamo di compiere gli stessi passi anche su Linux. Ma diciamolo subito, io non sono certo un esperto di Linux il che in questo caso è forse un vantaggio perchè i problemi che incontrerò in questo viaggio saranno probabilmente gli stessi che incontrereste anche voi. Sicuramente con Linux le cose si complicano rispetto a Windows. Innanzitutto ci sono numerose distribuzioni ed ognuna di esse contiene pacchetti software e configurazioni differenti. Per questo motivo voglio provare a fare una cosa diversa dal solito, sperando di ottenere qualche risultato. Ho deciso di usare due distribuzioni di Linux per compiere le stesse operazioni su entrambe e verificare in questo modo quali sono le differenze. Ciò permetterà anche a voi che mi seguite, di scegliere eventualmente la piattaforma più indicata per lo scopo che stiamo perseguendo.

Proprio mentre scrivo queste lettere stò scaricando in contemporanea sia Fedora13 che Ubuntu 10.04 che installerò su VirtualBox per fare tutti gli esperimenti del caso. A priori credo che con Fedora ci saranno meno problemi che con Ubuntu perchè, a mia impressione, ques’ultima è più user-friendly e meno adatta a “smanettoni programmatori”, mentre credo che Fedora sia più adatta ad un ambiente di programmazione. Ma a breve installerò le due distribuzioni e comincerò a fare i debiti esperimenti. Mentre vi scrivo stò installando Ubuntu. La procedura di installazione è estremamente semplice, in pratica non ho dovuto configurare quasi nulla se non la tastiera, lingua e fuso orario che erano comunque preselezionati. A fine installazione mi ha fornito un elenco di aggiornamenti disponibili che ho subito installato. Per quanto riguarda Fedora l’installer è leggermente più complesso e le impostazioni non sono preimpostate, ma nulla di così complicato. Gli aggiornamenti non partono in automatico ma vi ritroverete dei simboli di avviso nella barra in alto (una specie di sole ed un triangolo)  che vi permetteranno di far partire il processo di upgrade.

Lavorando con VirtualBox la prima cosa da fare è installare le vxboxadditions. Questa fase non ha nulla a che vedere con le wxWidgets ma colgo l’occasione per segnalare i probemi che ho riscontrato anche in questo frangente. Con Ubuntu dopo aver selezionato “Installa Guest Additions” dal menu della VirtualMachine  compare istantaneamente il CD e con un doppio click, dopo aver inserito la password di root, tutto avviene in automatico in una finestra di terminale. Basterà un riavvio per avere tutte le funzionalità attivate.  In realtà dopo l’intallazione c’era qualche problema grafico legato a mancati aggiornamenti di porzioni dello schermo che ho risolto togliendo gli “effetti visivi” dalle impostazioni grafiche di ubuntu stessa. Con Fedora il doppio click non basta in quanto la procedura genererà un errore.  Ho provato ad aprire un terminare ed entrare nel cd con cd /media/VBOXADDITIONS_3.2.8_64453.  A questo punto dovete operare come amministrazioni per cui digitate su. Inserite la password di root. Ora potete lanciare ./VBoxLinuxAdditions-x86.run ed il processo si attiva : purtoppo però una parte viene eseguita correttamente ed una mi fornisce l’errore “your system does not seem to be set to build kernel modules”. Googlando ho trovato soluzioni tipo queste:

sudo yum install kernel-devel-$(uname -r)

sudo yum install kernel-devel kernel-headers

…ma nessuna delle due sembra funzionare, e non chiedetemi a cosa servono visto che non l’ho capito con esatezza 🙂 In definitiva con Fedora non sono riuscito a completare l’installazione delle boxaddition cosa che porterà a dei problemi più avanti. Magari qualche esperto di linux passerà da queste parti e ci illuminerà, ma creado che i problemi siano legati ad incompatibilità di versioni visto che le distribuzioni Linux da me scelte sono distribuite da poco tempo.

1) Come primo passo ho aperto firefox in entrambe le distribuzioni, sono andato su http://sourceforge.net/downloads/wxwindows/2.9.1/ ed ho scaricato il file wxWidgets-2.9.1.tar.bz2 ed ho scompattato l’archivio (in home/stefano/stx/). NB: in realtà su Ubuntu ho scaricato anche la 2.6.4 per testare eventuali differenze o problematiche.

2) su (se non noto questo comando serve ad acquisire i diritti di amministratore di sistema per cui verrà chiesta la relativa password).

3) cd /home/stefano/stx/wxWidgets-2.9.1 (ovviamente il percorso deve essere aggiustato in base a dove avete le wxWidgets).

4) ./configure  questo comando  configura la successiva fase di compilazione. Per avere un’idea delle opzioni disponibili è possibile digitare ./configure — help.

A questo punto entrambe le distribuzioni mi forniscono un errore in quanto non rilevano la presenza del compilatore C++. Dobbiamo perciò installarlo. Su Ubuntu andiamo su “gestione pacchetti” mentre in Fedora su “Add/Remove Software”. Con Ubuntu andiamo ad installare il pacchetto build-essential che provvederà ad installare il compilatore C++ e pacchetti collegati. Se ora riproviamo con il ./configure comparirà l’errore “could not run GTK+ test program”. Andiamo perciò ad installare il pacchetto gnome-core-devel e se non fosse presente anche libgtk2.0-dev (nella mia distribuzione era presente ma tenete conto che queste informazioni le ho ottenute googlando sul web per cui trovo comodo riportare anche soluzioni che non sono state a me utili ma che potrebbero esserlo per altri). A queso punto il comando ./configure funzionerà a dovere e potremmo finalmente dare anche il comando make. Esso ci metterà parecchio tempo a completare il suo lavoro.

Al termine un “sudo make install” completerà la procedura che sarà accompagnata dal seguente messaggio:

The installation of wxWidgets is finished.  On certain platforms (e.g. Linux) you'll now have to run ldconfig if you installed a shared library and also modify the LD_LIBRARY_PATH (or equivalent) environment variable. wxWidgets comes with no guarantees and doesn't claim to be suitable for any purpose. Read the wxWindows Licence on licencing conditions.

Ora passiamo a Fedora: prima di tutto installiamo il compilatore, in particolare possiamo prendere il pacchetto “C++ support for GCC”. Una volta selezionato ci viene fornita la lista dei pacchetti collegati ma insorge un problema. Con la risoluzione grafica di 1024×768 i pulsanti per accettare o negare l’installazione vanno al di fuori dello schermo per cui dobbiamo agire alla cieca con comandi da tastiera. Lasciatemi dire che un problema simile è scandaloso per un sistema operativo nel 2010. Sicuramente il problema è aggirabile con comandi da tastiera (yum install gcc gcc-c++ autoconf automake) ma se operate in ambiente grafico sappiate che dovete raggiungere (con il tato TAB) il secondo “pulsante invisibile”. Non posso nemmeno aumentare la risoluzione perchè il problema è legato alla mancata installazione della BoxAddition di cui abbiamo parlato prima. Comunque sia una volta installato il compilatore dobbiamo installare le gtk2 come su Ubuntu. Per farlo possiamo usare il comando yum install gtk2-devel. Ora siamo pronti per il make e dopo una mezz’oretta di lavoro make install completerà il lavoro.

Finalmente anche con Fedora abbiamo compilato ed installato le wxwidges. In conclusione le due distribuzioni si sono comportate più o meno nello stesso modo. Le problematiche incontrate sono legate alla mancaza delle gtk2 e del compilatore c++ in entrambe le distribuzioni, inoltre su Fedora il problema di installazione delle BoxAddition riduce l’usabilità del sistema attraverso l’interfaccia grafica.

  2 Responses to “Compilare ed installare le wxWidgets in Ubuntu e Fedora”

  1.  

    Complimenti!!! La tua guida mi è stata davvero utile!!

  2.  

    Mi fa piacere non solo perchè la mia guida ti è stata utile, ma anche perchè me l’hai detto, visto che nonostante le centinaia di visite al blog nessuno mi scrive mai nulla impedendomi di capire se le guide che ho preparato con numerose ore di lavoro sono utili a qualcuno oppure no.
    Grazie ancora.

    Stefano