2010-06-18 14 views
10

Czy mógłbyś wyjaśnić, jak działa powiązanie z opcją -l z plikami .la?Opcja gcc -l i pliki biblioteki .la

Z mojego doświadczenia wynika, że ​​łączyłem się tylko z plikami biblioteki statycznej (.a).

Teraz przyjrzałem się plikom Make Make generowanym przez Qt i nie potrafię wymyślić, jak linker odczytuje użycie/otwarcie pliku libQtCore.la, gdy podano -l przełącznik QtCore, zamiast szukać libQtCore.a.

Również - instrukcja gcc stwierdza, że ​​przełącznik -l [nazwa biblioteki] będzie zawierał lib [nazwa biblioteki] .a, nie lib [nazwa biblioteki] .la.

+0

Nie znam rozszerzenia ".la". Co mówi "file yourfile.la'? Może to jest to samo co archiwum obiektów i można zmienić jego nazwę na '.a' – sellibitze

Odpowiedz

12

.la pliki są tak dalece, jak ja wiem libtool śmieci i nie powinny być połączone z ręcznie. Są używane wewnętrznie przez libtool z jakiegokolwiek powodu, który ich potrzebuje. Powinieneś połączyć się z plikiem *.a. W Qt install/build powinny znajdować się pliki *.a, do których można utworzyć link.

+0

jak skompilować z .la w celu utworzenia biblioteki statycznej np. Example.la – HMS

+1

@Muhammad Jak już powiedziałem, pliki' * .la' są śmieciami . Nie są to biblioteki statyczne. Otwórz jeden, zobaczysz, że to jest garść tekstu. Chcesz pliki '* .a'. – rubenvb

Powiązane problemy