Was genau bedeutet gcc-multilib unter Ubuntu?

11

Nachdem ich lange mit älterem Ubuntu (v.12) rumgehangen habe, aktualisiere ich auf v.16 und bin sehr verwirrt mit Erwähnungen von "gcc-multilib".

Ist dies tatsächlich Apples "Fat Binaries" - oder " Universal Binaries " -Modell, das auf Linux portiert ist?

Sind native C-Bibliotheken unter Ubuntu zu Containern geworden, die mehrere Binärdateien für verschiedene Architekturen enthalten?

Wenn ja, müssen wir keine 32-Bit-Laufzeitbibliotheken mehr speziell auf einem x64-System installieren? Das "Standard" -Paket von gcc- oder g ++ - Bibliotheken enthält alles, was zum Ausführen und Erstellen von 32-Bit-Apps erforderlich ist.

ddbug
quelle

Antworten:

13

gcc-multilibist nützlich für das Cross-Compilieren , dh das Kompilieren eines Programms zur Ausführung auf einer anderen Prozessorarchitektur. Zum Beispiel würden Sie benötigen, gcc-multilibwenn Sie unter 64-Bit-Ubuntu laufen und ein Programm kompilieren möchten, das unter 32-Bit-Ubuntu ausgeführt werden soll (oder unter ARM usw. Sie haben die Idee).

AlexP
quelle
1
Es hängt also nicht mit Laufzeitbibliotheken zusammen? Müssen wir noch durch die Rahmen gehen und "libc-i386", "g ++ - i386" usw. installieren, um 32-Bit-Programme auf x64 auszuführen? Und hängt "dpkg --add-architektur i386" mit Multilib zusammen?
ddbug
Ja. Die üblichen Reifen. dpkg --add-architecturesagt einfach, dpkgdass Sie wirklich Pakete für fremde Architektur installieren möchten und es sollte aufhören, sich zu beschweren und anzufordern --force-architecture.
AlexP
Vielen Dank, AlexP. Ist dieses Multilib-Setup neu für Ubuntu 16 oder gab es es früher, etwa in Version 14 oder sogar 12?
ddbug
Zumindest 12.04.
AlexP