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.
Jak wykonalne byłoby skompilowanie Pythona (prawdopodobnie poprzez pośrednią reprezentację C) do kodu maszynowego? Prawdopodobnie musiałoby to być linkowane do biblioteki wykonawczej Pythona, a wszelkie części standardowej biblioteki Pythona, które same byłyby Pythonem, również musiałyby zostać skompilowane (i połączone). Ponadto, jeśli chciałbyś przeprowadzić dynamiczną ocenę wyrażeń, musiałbyś spakować interpreter Pythona, ale …
Interesuje mnie sprawdzenie, czy dana biblioteka statyczna iPhone'a została zbudowana dla ARM lub Intel. To bardziej ciekawość niż cokolwiek innego. Czy jest do tego jakieś narzędzie specyficzne dla Mac OS X lub BSD? Ten post zawiera przykład w systemie Linux.
Nawet banalnie małe programy Haskell zamieniają się w gigantyczne pliki wykonywalne. Napisałem mały program, który został skompilowany (z GHC) do pliku binarnego o rozmiarze do 7 MB! Co może spowodować, że nawet mały program Haskell zostanie skompilowany do ogromnego pliku binarnego? Co, jeśli cokolwiek, mogę zrobić, aby to zmniejszyć?
Próbuję zrozumieć, co się dzieje, gdy moduły ze zmiennymi globalnymi i statycznymi są dynamicznie połączone z aplikacją. Przez moduły rozumiem każdy projekt w rozwiązaniu (dużo pracuję z Visual Studio!). Te moduły są wbudowane w * .lib lub * .dll lub sam * .exe. Rozumiem, że plik binarny aplikacji zawiera globalne …
Zawsze się zastanawiałem. Wiem, że kompilatory konwertują kod, który piszesz na pliki binarne, ale co robią konsolidatory? Zawsze byli dla mnie tajemnicą. Z grubsza rozumiem, co to jest „linkowanie”. Dzieje się tak, gdy do pliku binarnego są dodawane odwołania do bibliotek i struktur. Nie rozumiem nic poza tym. Dla mnie …
Nie mogę znaleźć nigdzie, co robi flaga -all_load podczas kompilowania kodu Objective-C. Mam pewne problemy z przesyłaniem plików binarnych do Apple, mówią, że to dlatego, że nie użyłem tej flagi, ale mój kod kompiluje się nawet bez niej. Czy ktoś może mi w tym pomóc? Dzięki
Używam biblioteki z CGAL, która na etapie linkowania mojej kompilacji kodu generuje wiele ostrzeżeń dotyczących linkowania w tej postaci: warning LNK4099: PDB 'vc80.pdb' was not found with 'gmp-vc80-mt-sgd.lib' or at 'vc80.pdb'; linking object as if no debug info Jak wyłączyć to ostrzeżenie dotyczące konsolidatora w programie Visual C ++ / …
Stworzyłem nowy projekt C ++ w Visual Studio 2008. Żaden kod nie został jeszcze napisany; Zmieniono tylko ustawienia projektu. Kiedy kompiluję projekt, otrzymuję następujący błąd krytyczny: błąd krytyczny LNK1104: nie można otworzyć pliku „C: \ Program.obj”
Kiedy kompiluję coś na moim komputerze z Ubuntu Lucid 10.04, zostaje to połączone z glibc. Lucid używa 2.11 glibc. Kiedy uruchamiam ten plik binarny na innym komputerze ze starszym glibc, polecenie nie powiedzie się, mówiąc, że nie ma glibc 2.11 ... O ile wiem, glibc używa wersji symboli. Czy mogę …
Obecnie preferowanym przeze mnie środowiskiem C ++ jest darmowa iw dużej mierze doskonała edycja Microsoft Visual Studio 2005 Express. Od czasu do czasu wysyłałem innym osobom pliki .exe z zadowalającymi wynikami. Jednak ostatnio dokonałem niepokojącego odkrycia, że zadowalające wyniki były oparte na większym szczęściu, niż bym chciał. Próba uruchomienia jednego …
Jak mogę statycznie łączyć tylko niektóre określone biblioteki z moim plikiem binarnym podczas łączenia z GCC? gcc ... -static ...próbuje łączyć statycznie wszystkie połączone biblioteki, ale nie mam statycznej wersji niektórych z nich (np .: libX11).
To pytanie z drugiej ręki z witryny programistycznej systemu operacyjnego, ale zaciekawiło mnie, ponieważ nigdzie nie mogłem znaleźć przyzwoitego wyjaśnienia. Podczas kompilowania i linkowania wolnostojącego programu w C ++ przy użyciu gcc, czasami pojawia się taki błąd konsolidatora: out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' Jest to najwyraźniej spowodowane tym, że ten …
Załóżmy, że mam trzy skompilowane obiekty, wszystkie wyprodukowane przez ten sam kompilator / wersję : A został skompilowany w standardzie C ++ 11 B został skompilowany w standardzie C ++ 14 C został skompilowany w standardzie C ++ 17 Dla uproszczenia załóżmy, że wszystkie nagłówki zostały napisane w C ++ …
Otrzymuję błędy podczas próby skompilowania klasy szablonu C ++, która jest podzielona między a .hppi .cppplik: $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()' main.cpp:(.text+0x1c): undefined reference to 'stack<int>::~stack()' collect2: ld …
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.