Ubuntuではgcc-multilibは正確にはどういう意味ですか?


11

古いUbuntu(v.12)で長い間ぶら下がっていた後、v.16に更新しています。「gcc-multilib」の記述に非常に混乱しています。

これは、実際にはLinuxに移植されたAppleの「ファットバイナリ」または「ユニバーサルバイナリ」モデルですか?

つまり、UbuntuのネイティブCライブラリは、さまざまなアーキテクチャのいくつかのバイナリをパックするコンテナになりますか?

その場合、x64システムに32ビットのランタイムライブラリを特別にインストールする必要はありませんか?gccまたはg ++ライブラリの「デフォルト」パッケージには、32ビットアプリの実行とビルドに必要なものがすべて含まれていますか?

回答:


13

gcc-multilibは、クロスコンパイル、つまり、異なるプロセッサアーキテクチャで実行するようにプログラムをコンパイルする場合に役立ちます。たとえば、gcc-multilib64ビットのUbuntuで実行していて、32ビットのUbuntuで実行するようにプログラムをコンパイルする場合(または、ARMなどでアイデアを得る場合)が必要になります。


1
それで、それはランタイムライブラリとは関係ありませんか?x64で32ビットプログラムを実行するために、32ビットライブラリに "libc-i386"、 "g ++-i386"などをインストールする必要はありますか?また、「dpkg --add-architecture i386」はmultilibに関連していますか?
ddbug 2016

はい。通常のフープ。dpkg --add-architecturedpkg外部アーキテクチャ用のパッケージを本当にインストールしたいだけで、文句を言ったり要求したりするのをやめるべきだと単に伝えます--force-architecture
AlexP 16

AlexPありがとうございます。このmultilibセットアップはUbuntu 16の新機能ですか、それとも以前に存在していましたか(v.14または12など)。
ddbug 16

少なくとも12.04。
AlexP 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.