Co dokładnie oznacza gcc-multilib na Ubuntu?

12

Po długim zawieszeniu się ze starszym Ubuntu (wersja 12) aktualizuję się do wersji 16 i jestem bardzo mylony ze wzmiankami o „gcc-multilib”.

Czy to faktycznie model „grubych plików binarnych” lub „ uniwersalnych plików binarnych ” firmy Apple przeniesiony na system Linux?

To znaczy, czy natywne biblioteki C na Ubuntu stały się kontenerami, które pakują kilka plików binarnych dla różnych architektur?

Jeśli tak, to nie musimy już specjalnie instalować 32-bitowych bibliotek uruchomieniowych w systemie x64? „Domyślny” pakiet bibliotek gcc lub g ++ zawiera wszystko, co jest potrzebne do uruchamiania i budowania aplikacji 32-bitowych?

ddbug
źródło

Odpowiedzi:

13

gcc-multilibjest przydatny do kompilacji krzyżowej , to znaczy kompilacji programu do uruchomienia na innej architekturze procesora. Na przykład, będziesz potrzebować, gcc-multilibjeśli pracujesz na 64-bitowym Ubuntu i chcesz skompilować program do uruchomienia na 32-bitowym Ubuntu (lub na ARM itp. Masz pomysł).

AlexP
źródło
1
Nie ma to związku z bibliotekami wykonawczymi? Czy nadal musimy przejść przez obręcze i zainstalować „libc-i386”, „g ++ - i386” i tak dalej w 32-bitowych bibliotekach, aby uruchomić 32-bitowe programy na x64? I czy „dpkg --add-architecture i386” jest powiązany z multilib?
ddbug
Tak. Zwykłe obręcze. dpkg --add-architecturepo prostu mówi dpkg, że naprawdę chcesz zainstalować pakiety dla architektury zagranicznej i powinien przestać narzekać i żądać --force-architecture.
AlexP,
Dziękuję AlexP. Czy ta konfiguracja multilib jest nowa dla Ubuntu 16, czy istniała wcześniej, powiedzmy w wersji 14 lub nawet 12?
ddbug
Co najmniej 12,04.
AlexP