2010-12-20 11 views
14

-R filenameCzy istnieje odpowiednik opcji "--just-symbols" GNU dla łączników innych niż GNU?

--just-symbole = nazwa_pliku

nazwy Czytaj symboli i ich adresy z pliku, ale nie przeniesiesz go lub umieścić go na wyjściu. Dzięki temu plik wyjściowy będzie symbolicznie odnosił się do absolutnych lokalizacji pamięci zdefiniowanych w innych programach. Możesz użyć tej opcji więcej niż raz.

Na przykład, na moim Macu ld -R libsomething.a lub nawet gcc -Wl,-R,libsomething.a nie działa.

+1

co to jest komunikat o błędzie? –

+9

Z pewnością odpowiedź będzie zależała od używanego łącznika innego niż GNU, ponieważ argumenty są przetwarzane przez konkretny wywołany linker. –

+1

Jaki komunikat błędu otrzymujesz; także jakiego łącznika i wersji używasz? – Unsigned

Odpowiedz

2

Ponieważ mówimy o "twoim macu", zakładam, że mówimy o systemach operacyjnych OS X.

W systemach UNIX łącznik "ld" (z opcją -R) jest używany przez większość czasu (patrz też: ELF). W przeciwieństwie do OS X Systems używa się formatu binarnego Mach-O i narzędzia dyld do łączenia. OS X nie zapewnia tych samych funkcji dla bibliotek, co UNIX. Wypróbuj plik otool -L na pliku binarnym, aby zobaczyć, gdzie biblioteki są oczekiwane. Możesz także spróbować ustawić dla swoich plików binarnych DYLD_LIBRARY_PATH (man dyld), ale pamiętaj o ryzyku bezpieczeństwa (może to być wykorzystane do wstrzyknięcia kodu takiego jak LD_LIBRARY_PATH w systemach UNIX).