linker

Osadzanie bibliotek DLL w skompilowanym pliku wykonywalnym

Czy jest możliwe osadzenie istniejącej biblioteki DLL w skompilowanym pliku wykonywalnym C# (tak, że masz tylko jeden plik do ... anie programu instalacyjnego do obsługi wszystkiego, ale było kilka osób w pracy, które mnie o to pytały i szczerze Nie wiem.

Jak działa proces kompilacji / łączenia?

Jak działa proces kompilacji i łączenia? (Uwaga: Jest to wpis do Stack Overflow ' S C++ FAQ . Jeśli chcesz krytykować pom ... ierwszej kolejności, więc Twoja odpowiedź jest bardzo prawdopodobne, aby przeczytać przez tych, którzy przyszli z pomysłem.)

Co oznaczają "statycznie połączone" i "dynamicznie połączone"?

Często słyszę określenia "statycznie połączone" i "dynamicznie połączone", często w odniesieniu do kodu napisanego w C, C++ lub C#. O czym oni są, o czym dokładnie mówią i co łączą?

Co robią linkerzy?

Zawsze się zastanawiałem. Wiem, że Kompilatory konwertują kod, który piszesz na binaria, ale co robią linkery? Zawsze były dl ... "po prostu działa". Rozumiem również podstawy dynamicznego łączenia, ale nic zbyt głębokiego. Mógłby ktoś wyjaśnić warunki?

Mały program Haskell skompilowany z GHC do ogromnych binarnych

Nawet trywialnie małe programy Haskella zamieniają się w gigantyczne pliki wykonywalne. Napisałem mały program, który zosta ... odować kompilację nawet małego programu Haskell do ogromnego pliku binarnego? Co, jeśli już, mogę zrobić, aby to zmniejszyć?

Co dzieje się ze zmiennymi globalnymi i statycznymi w bibliotece współdzielonej, gdy są one dynamicznie połączone?

Próbuję zrozumieć, co się dzieje, gdy moduły z globalnymi i statycznymi zmiennymi są dynamicznie połączone z aplikacją. Prze ... ułów może być niejasne, czy różne biblioteki mają swoje własne instancje globali, czy też globale są współdzielone. Dzięki.

Do czego służy znacznik-all load linker?

Nigdzie nie mogę znaleźć tego, co robi flaga-all_load podczas kompilacji kodu Objective-C. Mam pewne problemy z wgrywaniem b ... ą, że to dlatego, że nie użyłem tej flagi, ale mój kod kompiluje się nawet bez niego. Czy ktoś może mi w tym pomóc? Thanks

ld nie może znaleźć istniejącej biblioteki

Próbuję połączyć aplikację z g++ na tym Debian lenny system. ld skarży się, że nie może znaleźć określonych bibliotek. Konkre ... ic" libmagic.so.1 -> libmagic.so.1.0.0 Jak dalej zdiagnozować ten problem i co może być nie tak? Robię coś głupiego?

Łączenie bibliotek statycznych z innymi bibliotekami statycznymi

Mam mały fragment kodu, który zależy od wielu bibliotek statycznych (a_1-a_n). Chciałbym spakować ten kod do statycznej bibli ... yć tylko to, co jest w rzeczywistości potrzebne? To wygląda ściśle związane z Jak połączyć kilka bibliotek C/C++ w jedną?.

Łączenie ze starą wersją libc w celu zapewnienia większego zasięgu aplikacji

Binaria Linuksa są zwykle dynamicznie połączone z podstawową biblioteką systemową (libc). To sprawia, że ślad pamięci binarny ... rą możemy obsługiwać i powiązać nasz plik binarny z to. Jak określić najstarszą wersję libc, do której możemy się połączyć?

statyczne linkowanie tylko niektórych bibliotek

Jak mogę statycznie połączyć tylko niektóre konkretne biblioteki z moim binarnym podczas łączenia z GCC? gcc ... -static ... próbuje statycznie połączyć Wszystkie połączone biblioteki, ale nie mam statycznej wersji niektórych z nich (np: libX11).

Dzielenie szablonowych klas C++ nahpp/pliki cpp - czy to możliwe?

Dostaję błędy próbując skompilować klasę szablonów C++, która jest podzielona między .hpp i .cpp plik: $ g++ -c -o main.o m ... ydkie! W takim razie równie dobrze mogę wrócić do poprzedniego stanu i zmienić nazwę stack.cpp na stack.hpp i skończyć z tym.

Nadpisanie wywołania funkcji w C

Chcę nadpisać niektóre wywołania funkcji do różnych API w celu rejestrowania wywołań, ale mogę też chcieć manipulować danymi, ... kompilując i łącząc dodatkowy plik lub dwa, zamiast bawić się z linkowanie opcji lub zmiana kodu źródłowego mojego programu.

Jak określić docelową architekturę biblioteki statycznej (.a) na Mac OS X?

Interesuje mnie sprawdzenie, czy dana biblioteka statyczna iPhone ' a została zbudowana dla ARM lub Intela. To bardziej ci ... wiek innego. Czy istnieje jakieś specyficzne narzędzie Mac OS X lub BSD, aby to zrobić? This post daje przykład w Linuksie.

Co jest w środku.plik lib biblioteki statycznej, statycznie połączonej biblioteki dynamicznej i dynamicznie połączonej biblioteki dynamicznej?

Co jest w środku a .plik lib biblioteki statycznej, statycznie połączonej biblioteki dynamicznej i dynamicznie połączonej bib ... onej bibliotece dynamicznej, a także w linkowaniu statycznym ./ align = "left" / plik obj ze wszystkimi metodami. Zgadza się?

Wywołanie Haskell z kodu C++

Obecnie piszę aplikację w C++ i okazało się, że niektóre z jej funkcjonalności byłyby lepiej napisane w Haskell. Widziałem In ... ktowym z C++. UPDATE: umieściłem poniżej działający przykład dla każdego innego zainteresowany (również, więc nie zapomnę).

Jak określić preferencje ścieżki biblioteki?

Kompiluję program c++ używając g++ i ld. Mam bibliotekę .so, którą chcę wykorzystać podczas linkowania. Jednak biblioteka o t ... bar.cpp dodanie /my/dir na początek lub koniec mojego $PATH PL` zmienna dodanie /my/dir/libfoo.so.0 jako argumentu do g++

Czy Mogę zmienić 'rpath' w już skompilowanym pliku binarnym?

Mam stary plik wykonywalny, który jest zaplanowany na stertę złomu, ale jeszcze go nie ma. Opiera się na niektórych libach, k ... otek? Czy jest to możliwe, czy po utworzeniu pliku binarnego elfa naprawiasz rzeczy do lokalizacji i nie można ich przenieść?

Jak Mogę połączyć się z określoną wersją glibc?

Kiedy skompiluję coś na moim Ubuntu Lucid 10.04 PC, zostaje to połączone z glibc. Lucid używa wersji 2.11 glibc. Gdy uruchami ... gcc do połączenia z określoną wersją symbolu? W moim konkretnym użyciu staram się skompilować GCC cross toolchain dla ARM.

Polecenie gcc bezpośredniego połączenia biblioteki statycznie

Wydaje mi się dziwne używanie -Wl,-Bstatic, aby powiedzieć gcc, z którymi bibliotekami chcę się połączyć statycznie. W końcu ... lioteki bezpośrednio połączyłoby się z nim, ale wolę zachować semantyczny dla włączania bibliotek statycznych i dynamicznych.