Canali
![]() Ultime news
![]() Ultimi articoli
![]() Le ultime dal Forum |
![]() Correlati![]() TagPrima parte: configurazioneLo script di configurazione solitamente vi comunica che cosa non va, molto spesso in modo chiaro. Ciononostante in alcuni software riuscite a capire soltanto in fase di compilazione che la riga di evocazione di configure è sbagliata. Per questo vi suggerisco sempre di studiare il vostro sistema, installare quello che c'è da installare e controllare che le dichiarazioni date a configure corrispondano a verità. Suggerimento: i procedimenti di configurazione e compilazione possono essere interrotti in qualsiasi momento con Ctrl+C. Gli errori più comuni in fase di configurazione sono tre:
Caso: opzione forzata in configurazioneGli errori derivanti da opzioni forzate possono avere due conseguenze distinte. La prima, il fallimento della configurazione in seguito a dei test di presenza di header e librerie, e la seconda è il termine della configurazione senza problemi e il fallimento della compilazione perché non c'è stato alcun test di presenza: a causa di questo l'errore viene "ereditato" dalla compilazione. Nello screenshot riportato ho tentato di configurare faad2, un codec audio, abilitando il plugin per xmms, un programma per leggere flussi audio come MP3 o wav. Ho forzato l'opzione con questa invocazione di configure: ./configure --with-xmms
Ciò vale per qualsiasi libreria, applicazione o header mancante. Caso: errore di dipendenzaI cosiddetti "errori di dipendenza" possono scaturire da un'opzione forzata o da una dipendenza fondamentale (o requisito fondamentale) insoddisfatta. Nel caso dell'opzione forzata il requisito non è necessario per il funzionamento del programma, ma se è assente ne preclude una o più funzionalità. L'assenza di un requisito fondamentale, che causa l'errore di dipendenza che vedremo adesso, fa invece fallire la configurazione, o la compilazione, e rende obbligatoria l'installazione del pacchetto mancante. Nell'esempio ho tentato di compilare rtorrent, un client torrent testuale, senza disporre di libsigc++, uno dei suoi requisiti fondamentali. L'invocazione di configure è semplice: ./configure E questo è il risultato:
Soluzioni possibili
Caso: errore di versioneL'errore di versione è più subdolo e difficile da scovare e da correggere. Esso è un particolare errore di dipendenza dove non è l'intera libreria a mancare, ma alcune funzioni della libreria stessa. L'errore può manifestarsi quando l'utente aggiorna un programma ma non le sue dipendenze: il programma aggiornato potrebbe dipendere da alcune funzioni non presenti nella vecchia versione della libreria, e gli effetti potrebbero essere imprevedibili, dal mancato caricamento del software al crash del programma stesso. Nell'esempio ho installato nel sistema la versione 0.4.4 di una libreria che si chiama glitz e si occupa di rendering grafico. cairo è un'altra libreria grafica che genera caratteri a video tramite metodi simili a quelli usati per il rendering di caratteri in documenti PDF o PostScript. La versione di cairo che ho voluto compilare era la 1.8.10, e se ne viene abilitato glitz essa ne richiede la versione 0.5.1 o superiore. Usando pkg-config e verificando la versione di glitz installata con $ pkg-config --modversion glitz L'output è 0.4.4. Ciononostante la configurazione di cairo si ferma alla verifica della versione di glitz: ./configure --enable-glitz
Soluzioni possibili
Questo tipo di errore potrebbe essere molto comune se installerete librerie da repository e tenterete di compilare software che usano versioni più recenti delle stesse librerie. ![]() Troubleshooting: Compilazione ![]() Appendice 1: Troubleshooting Pagine
Segnala ad un amico |
© Copyright 2025 BlazeMedia srl - P. IVA 14742231005