我在我的x86 32位Linux系統上構建了GCC 4.7。 64位模式不GCC:對不起,未實現:64位模式未編譯
編譯,同時通過我的Linux發行版默認提供的編譯器可以交叉:與-m64標誌我得到
對不起,沒有實現當我嘗試交叉編譯用-m64編譯。
我必須傳遞給./configure以啓用GCC中的64位模式?這些都是我用來構建GCC 4.7的選項:
$ /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)
編輯:
--enable-multilib的和--enable-目標= i686的-PC-Linux的GNU,x86_64的-PC- 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 --enable -multiarch --with-cloog =/usr/local/--with-mpfr =/usr/local/--with-ppl =/usr/local/--verbose --enable-languages = c,C++ --enable -multilib --enable-targets = x86-64-pc-linux-gnu線程模型:posix gcc version 4.7.0 20120113(experimental)(GCC)
$ g ++ -m64 c.cpp c.cpp:1:0:對不起,沒有實現:64位模式不 在
'--enable-multiarch'建議Debian(或衍生產品),我記得,FSF的GCC在Debian的多元化系統中並不能很好地工作。您可能需要將Debian的補丁應用於FSF GCC快照。 – hvd 2012-01-14 09:47:20
當然,它不會像這樣工作。 Multilib具有*後向*兼容性,而不是*前向*。要在32位機器上編譯64位代碼,你必須建立最小的SDK:binutils + libc [musl,uclibc,glibc,...] + gcc。 – 0andriy 2017-06-14 11:26:31