Domanda

Sfondo

Di recente ho incontrato il server multimediale fuppes UPnP e sembrava fantastico. Ho installato sul mio server a casa e iniziato a usarlo per lo streaming video a Xbox. Ha funzionato davvero bene e sono stato soddisfatto. Poi ho aggiornato il mio server di distribuzione e fuppes smesso di funzionare; Ora so che è perché diverse biblioteche hanno deprezzato, più specificamente debian è iniziato far cadere il .la libtool file dalla maggior parte dei loro pacchetti .

Il Problema / Domanda

Quindi la mia domanda è: come faccio a costruire fuppes ora che non ho i file .la per libtool? In particolare, questo è il mio messaggio di errore esatto:

/bin/sed: can't read /usr/lib/libogg.la: No such file or directory
libtool: link: `/usr/lib/libogg.la' is not a valid libtool archive

Non ho più un file /usr/lib/libogg.la. Questo dimostra dal terminale:

# dpkg -L libogg-dev | grep "a$"
/usr/lib/libogg.a
#

Ho solo bisogno di essere sottolineato nella giusta direzione davvero. Ho letto i documenti libtool-automake, ma mi manca ancora quel pezzo di informazione che mi dice come compilare ora che non ho più libogg.la. Così, in breve, come faccio a compilare, in assenza di .la file?

NB. Questo è tutto su Ubuntu Karmic Koala

È stato utile?

Soluzione

Credo che Debian è calata i file .la perché può causare problemi quando si sta costruendo sia a 32-bit e 64-bit. Se libtool trova un file .la, ha la pessima abitudine di mettere il percorso completo per la libreria nel comando di collegamento, e questo a volte è la libreria sbagliata (a 32 bit invece che a 64-bit o viceversa). In Solaris, ho avuto un problema di libtool voler collegare /usr/lib/libintl.so invece di /usr/lib/64/libintl.so, tutto perché ha trovato /usr/lib/libintl.la

Si dovrebbe essere in grado di collegare senza il file .la specificando -logg sulla linea mumble_LIBADD (sostituire 'mumble' con il nome del pacchetto che si sta costruendo) all'interno del Makefile.am appropriata. Se per qualche motivo il linker non riesce a trovare la libreria, è possibile specificare un percorso con l'aggiunta di qualcosa di simile a questo:

mumble_LDFLAGS = -R / usr / lib -L / usr / lib

Ma in questo esempio, devo credere che / usr / lib è nel percorso di ricerca di default per le librerie.

Per il vostro messaggio d'errore con sed, non so il motivo per cui fuppes utilizza sed per trovare /usr/lib/libogg.la, ma ciò potrebbe auspicabilmente essere fissato da un cambiamento adeguato a monte libtool (come in autoconf o automake ). Ho il sospetto che ci sia un interruttore da qualche parte nel 'configure' che aiuta con questo problema (come --with-ogg o qualcosa del genere). Eseguire 'configure --help' e potete trovare alcuni suggerimenti lì.

Altri suggerimenti

Non si dovrebbe essere bisogno i file .la. Non hai incollare le parti più importanti del risultato del comando - quello che passo sta cercando di creare un collegamento al file libogg.la. La mia ipotesi è libtool, e la mia ipotesi è che dopo l'aggiornamento si sta eseguendo fare nella vostra dir sorgente o VCS-out, senza eseguire nuovamente autogen.sh o configurare in modo appropriato.

In breve, non dare abbastanza informazioni per aiutare ulteriormente (Come sei arrivato fuppes? Come hai fatto a costruirlo? Come hai fatto si tenta di costruire dopo l'aggiornamento?). Molto probabilmente si è dimenticato o per rigenerare costruire file, o qualche altro passo linker sta tirando in un file .la e deve essere rigenerata (per esempio, un file pkg-config).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top