私のx86 32ビットLinuxシステムでGCC 4.7をビルドしました。私のLinuxディストリビューションによってデフォルトで提供コンパイラがクロスすることができますしながら、GCC:申し訳ありませんが実装されていません:64ビットモードがコンパイルされていません
にコンパイルされていない64ビットモード:私は-m64フラグを使用してクロスコンパイルしようとすると、私は
申し訳ありませんが、未実装を取得します-m64でコンパイルします。
GCCで64ビットモードを有効にするにはどうすればよいですか?
$ /usr/local/bin/g++ -v Using built-in specs. COLLECT_GCC=/usr/local/bin/g++ COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ./configure --enable-multiarch --with-cloog=/usr/local/ --with-mpfr=/usr/local/ --with-ppl=/usr/local/ --verbose --enable-languages=c,c++ Thread model: posix gcc version 4.7.0 20120113 (experimental) (GCC)
EDIT:
--enable-multilibのと--enable-ターゲット= i686の-pc-linux-gnuのよう、x86_64版-PC-これらは私がGCC 4.7を構築するために使用されるオプションですlinux-gnu
状況を変更しないでください。コンパイラはまだコンパイルされていない65ビットモードについて文句を言う:
$ g ++ -v組み込み仕様を使用する。 COLLECT_GCC = g ++ COLLECT_LTO_WRAPPER =/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper 対象:i686-pc-linux-gnuで構成されます:./configure - 有効-multiarch --with-cloog =/usr/local/--with-mpfr =/usr/local/--with-ppl =/usr/local/--verbose --enable-languages = c、C++ --enable -multilib --enable-targets = i686-pc-linux-gnu、x86_64-pc-linux-gnuスレッドモデル:posix gcc version 4.7.0 20120113(experimental)(GCC)
$ g ++ -m64 c.cpp c.cpp:0:1申し訳ありませんが、実装されていない:
'--enable-multiarch'はDebian(または派生物)を示唆しています。私が覚えているように、FSFのGCCはDebianのマルチカルシステムではうまく機能しません。 DebianのパッチをFSF GCCスナップショットに適用する必要があるかもしれません。 – hvd
もちろん、このようには動作しません。 Multilibは* backward *との互換性があり、* forward *はありません。 32ビットマシン上で64ビットコードをコンパイルするには、binutils + libc [musl、uclibc、glibc、...] + gccの最小SDKを構築する必要があります。 – 0andriy