Linker jest częścią łańcucha narzędzi do tworzenia plików wykonywalnych z kodu źródłowego napisanego w skompilowanych językach programowania. Pobiera skompilowany kod obiektowy w wielu plikach i tworzy z nich pojedynczy, „połączony”, wykonywalny plik.
Kompiluję program w języku C ++ przy użyciu g++i ld. mam.so bibliotekę, z której chcę korzystać podczas łączenia. Jednak biblioteka o tej samej nazwie istnieje w programie /usr/local/libi ldwybiera tę bibliotekę zamiast tej, którą bezpośrednio określam. Jak mogę to naprawić? W poniższych przykładach mój plik biblioteki to /my/dir/libfoo.so.0 . Rzeczy, …
Mam stary plik wykonywalny zaplanowany na stertę złomu, ale jeszcze go tam nie ma. Opiera się na niektórych bibliotekach, które zostały usunięte z mojego środowiska, ale mam kilka bibliotek zastępczych gdzieś, gdzie działa dobrze. Chciałbym wskazać ten plik wykonywalny na te biblioteki zastępcze. Tak, mógłbym ustawić LD_LIBRARY_PATH, ale ten plik …
gcci ldzapewniają wiele sposobów określania ścieżki wyszukiwania bibliotek - między innymi flagi -rpathi -L. Strony podręcznika nie ujawniają różnic między tymi dwiema flagami, co oznacza, że każda flaga dodaje bibliotekę do ścieżki wyszukiwania biblioteki. Jednak wydaje się dziwne, że obie flagi robią dokładnie to samo. Jakie są różnice, jeśli w …
W naszym produkcie dostarczamy pliki binarne Linuksa, które dynamicznie łączą się z bibliotekami systemowymi, takimi jak „libpam”. W niektórych systemach klientów otrzymujemy następujący błąd na stderr po uruchomieniu programu: ./authpam: /lib/libpam.so.0: no version information available (required by authpam) Aplikacja działa dobrze i wykonuje kod z biblioteki dynamicznej. Więc to nie …
Mam funkcję, która jest zadeklarowana i zdefiniowana w pliku nagłówkowym. To jest problem sam w sobie. Gdy ta funkcja nie jest wstawiona, każda jednostka tłumacząca, która używa tego nagłówka, otrzymuje kopię funkcji, a kiedy są ze sobą połączone, są duplikowane. „Naprawiłem” to, wprowadzając funkcję w tekście, ale obawiam się, że …
Co znajduje się w pliku .lib biblioteki statycznej, biblioteki dynamicznej połączonej statycznie i biblioteki dynamicznej połączonej dynamicznie? Dlaczego nie jest potrzebny plik .lib w dynamicznie połączonej bibliotece dynamicznej, a także, że w statycznym łączeniu plik .lib jest niczym innym jak plikiem .obj ze wszystkimi metodami. Czy to jest poprawne?
Jaki jest cel tych opcji wiersza poleceń? Proszę o pomoc w rozszyfrowaniu znaczenia następującego wiersza poleceń: -Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib Najwyraźniej ma to coś wspólnego z linkowaniem, ale w podręczniku GNU jest cicho, co dokładnie oznacza grupowanie.
Piszę dość dużą bibliotekę współdzielonych obiektów C ++ i napotkałem mały problem, który sprawia, że debugowanie jest uciążliwe: Jeśli zdefiniuję funkcję / metodę w pliku nagłówkowym i zapomnę utworzyć dla niej kod pośredniczący (podczas programowania), ponieważ tworzę jako współdzieloną bibliotekę obiektów, a nie plik wykonywalny, nie pojawiają się żadne błędy …
Potrzebuję miejsca do zainstalowania bibliotek w Linuksie, do którego nie mam dostępu su. Używam ~ / local [/ bin, / lib, / include], ale nie wiem jak mogę powiedzieć ./configure szukać tam bibliotek (szczególnie próbuję skompilować emacs, który wymaga libgif , który nie jest dostępny w mojej dystrybucji). Próbowałem dodać …
Jak mogę tworzyć zmienne globalne, które są współdzielone w C? Jeśli umieszczę go w pliku nagłówkowym, wówczas konsolidator narzeka, że zmienne są już zdefiniowane. Czy to jedyny sposób, aby zadeklarować zmienną w jednym z moich plików C i ręcznie wstawić externs na początku wszystkich innych plików C, które chcą jej …
Czy ktoś próbował użyć goldzamiast ld? gold obiecuje być znacznie szybszy niż ld, więc może pomóc przyspieszyć cykle testowe dla dużych aplikacji C ++, ale czy może być używany jako zamiennik ld? Czy mogę gcc/ g++bezpośrednio zadzwonić gold.? Czy są jakieś znane błędy lub problemy? Chociaż goldod jakiegoś czasu jest …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.