Pracuję w QT.
- Czy biblioteka statyczna może zależeć od innej biblioteki statycznej? (Lib statyczny jest tworzony przez połączenie innej biblioteki statycznej)
- Jeśli tak, to czy możliwe jest, że po połączeniu z lib2, wygenerowana lib (lib1) nie będzie zawierała wszystkich kodów lib2?
W moim projekcie Qt używam biblioteki statycznej, która zależy od wielu bibliotek. Musiałem dodać wszystkie biblioteki (ze wszystkimi ich nagłówkami w moim projekcie), chociaż potrzebuję tylko jednej biblioteki lib (i jednej .h tej klasy) w kodzie.
Proszę wyjaśnić scenariusz.
źródło
Moje dwa krótkie fragmenty na ten temat: 10 (przepraszam, okropny żart).
Aby nieznacznie rozszerzyć, oto:
1- Biblioteka statyczna może zależeć od innej biblioteki statycznej, niczego, a nawet biblioteki dynamicznej: w pierwszych dwóch przypadkach cały kod nowej biblioteki statycznej zostanie włączony do nowej SLL (Biblioteka łączy statycznych), jednak trzecia opcja , w zależności od środowiska może doprowadzić do uzyskania przez SLL jednego z następujących rezultatów,
Krótko mówiąc, możesz połączyć bibliotekę statyczną z biblioteką statyczną
2 - jeśli zarówno lib1, jak i lib2 są statyczne, a lib1 zostało połączone z lib2, wówczas cała funkcjonalność lib2 byłaby dostępna w lib1 bez potrzeby dołączania lib2, ponieważ lib2 byłby statycznie powiązany w lib1 (pomyśl rosyjskie lalki z lib2 bycie mniejszym).
W opisywanym scenariuszu w każdym z plików, które musisz dołączyć, musi być dostępna dyskretna funkcjonalność, która nie jest statycznie powiązana, stąd potrzeba wielu plików, w przeciwnym razie będziesz mieć jeden plik do włączenia i wszystko będzie dobrze.
Wykonaj następujące czynności: jeden plik .h z odniesieniami do 6 statycznie połączonych bibliotek: aby uzyskać pełną funkcjonalność, w projekcie musisz uwzględnić 7 plików
Jedna SLL, która została utworzona z tego pliku .h wymagałaby dołączenia tylko nowej SLL do łączenia w kompilacji:
Mam nadzieję, że to pomoże i zrozumiałem, o co prosiłeś.
źródło