2010-06-18 10 views
10

Könnten Sie bitte erklären, wie die Verknüpfung mit der Option -l gegen .la-Dateien funktioniert?gcc -l Option und .la Bibliotheksdateien

Soweit meine Erfahrung erreicht - ich habe nur gegen statische Bibliothek (.a) Dateien verknüpft.

Jetzt habe ich mir einige Qt-generierte Makefiles angeschaut und kann nicht herausfinden, wie Linker die libQtCore.la-Datei verwendet/öffnet, wenn -l QtCore-Switch angegeben ist, anstatt nach libQtCore.a zu suchen.

Auch - GCC manuelle Zustände, die -l [Bibliotheksname] Schalter wird lib [Bibliotheksname] .a, nicht lib [Bibliotheksname] .la.

+0

Ich bin nicht vertraut mit der Erweiterung '.la'. Was sagt 'Datei yourfile.la'? Vielleicht ist es genau dasselbe wie ein Objektarchiv und kann umbenannt werden in '.a' – sellibitze

Antwort

12

.la Dateien sind, soweit ich weiß libtool Junk und sollte nicht manuell verknüpft werden. Sie werden intern von libtool verwendet, aus welchem ​​Grund auch immer. Sie sollten mit der Datei *.a verknüpfen. In einer Qt-Installation/Build sollte es *.a Dateien zum Verknüpfen geben.

+0

wie man mit .la kompiliert, um eine statische Bibliothek zu erstellen zB example.la – HMS

+1

@Muhammad Wie gesagt,' * .la' Dateien sind Junk . Sie sind keine statischen Bibliotheken. Öffnen Sie eins, Sie werden sehen, dass es ein Haufen Text ist. Sie möchten die '* .a' Dateien. – rubenvb