2010-06-18 3 views
10

Potresti spiegare, come funziona il collegamento con l'opzione -l contro i file .la?Opzione gcc -l e file libreria .la

Per quanto riguarda la mia esperienza, ho collegato solo file di libreria (.a) statici.

Ora ho dato un'occhiata a alcuni Makefile generati da Qt e non riesco a capire, come funziona il linker per usare/aprire il file libQtCore.la, quando viene specificato l'interruttore -l QtCore, invece di cercare libQtCore.a.

Inoltre - gcc manual afferma che l'opzione -l [nome libreria] includerà lib [nome libreria] .a, non lib [nome libreria] .la.

+0

Non ho familiarità con l'estensione '.la'. Cosa dice 'file yourfile.la'? Forse è proprio come un archivio di oggetti e può essere rinominato in '.a' – sellibitze

risposta

12

.la I file sono per quanto ne so libtool junk e non devono essere collegati manualmente. Sono utilizzati internamente da libtool per qualsiasi ragione ne abbia bisogno. È necessario collegare al file *.a. In una installazione/build Qt ci devono essere i file *.a da collegare.

+0

come compilare con .la per creare una libreria statica, ad esempio example.la – HMS

+1

@Muhammad Come ho detto, i file' * .la' sono spazzatura . Non sono librerie statiche. Apri uno, vedrai che è un mucchio di testo. Vuoi i file '* .a'. – rubenvb