Z jakiegoś powodu chcę rozpakować statyczną bibliotekę (libx.a) do pojedynczych plików obiektów (ao bo co) i określić te pliki obiektów (ao bo co) w łączu wejściowym lista zamiast biblioteki libx.a, przy pozostałych opcjach linkera pozostających bez zmian.link z biblioteką statyczną a poszczególnymi plikami obiektowymi
Jednak zauważyłem, że powyższa zmiana spowodowała znaczną różnicę w pliku wykonywalnym wyjścia. Zasadniczo metoda (a.o b.o c.o) spowoduje większy rozmiar wyjściowy.
Jaka jest różnica między tymi dwoma metodami (libx.a i poszczególne pliki obiektów)? A czy jest jakiś sposób obejścia?
binutil GNU (za ar i ld) wersja używam jest 2.16.1
Dzięki.
Co to jest, co próbujesz osiągnąć, dzieląc poszczególne pliki obiektów? –
Pierwotnym powodem było to, że chciałem określić sekcję wyjściową dla statycznej biblioteki lib w skrypcie linkera. I z jakiegoś powodu składnia archiwum (libx.a: *. O (.text)) nie działa, prawdopodobnie ze względu na nieaktualną wersję binutil w moim łańcuchu narzędzi. Ponieważ nie mogłem uaktualnić łańcucha narzędzi, musiałem rozpakować bibliotekę i użyć explicite plików obiektów. I tak natknąłem się na ten problem. – user313031