2011-09-28 13 views
14

gccを使用して32ビットLinuxプラットフォームで64ビットバイナリをコンパイルすることはできますか?gcc:32ビットプラットフォーム上で64ビットバイナリをコンパイルする

+0

http://www.linuxquestions.org/questions/linux-hardware-18/compiling-64ようにする必要があります-bit-kernel-in-32-bit-linux-240183/ – sealz

+0

harper89:それは驚くほど役に立たないフォーラムスレッドです。 – rubenvb

答えて

21

マルチリブGCCがインストールされている場合は、コマンドラインに-m64を追加するだけで簡単です。コンパイラは、マルチブロックのサポートでビルドされていない場合、不平を言うはずです。

リンクするには、標準ライブラリのすべての64ビットの対応が必要です。あなたのディストリビューションにマルチリビジョンGCCがある場合は、それらもリポジトリに存在するはずです。

+0

驚くほど簡単です!ありがとう! – weekens

+0

あなたは、私は64ビットの対応が必要であることを意味しました。 – weekens

+0

ウィークエンド:うん、そうです。この問題を修正しました。 – rubenvb

1

64ビットマシンでコンパイルするgccが必要です(例:x86_64-linux-gcc)。配布パッケージマネージャーを確認してください。

+0

非マルチブロッククロスコンパイラは200倍だから! = D – rubenvb

+0

私はちょうど2年の距離だから大丈夫です:) – wormsparty

2

-m64オプションが機能しない場合、シナプスに行き、gcc-multilibまたはg ++ - multilibを検索し、パッケージをインストールしてください。次に、-m64オプションでコンパイルします。

0

まずはgcc-multilibパーチェージをインストールできると思います。 そしてgcc -m64 yourcodeを使用してコードをコンパイルし、あなたがcound file yourprogramを使用してELFファイルをチェックし、出力はこの yourprogram: ELF 64-bit LSB executable,.......