首页 文章

GCC:抱歉,未实现:未编译的64位模式

提问于
浏览
27

我在我的x86 32位linux系统上构建了GCC 4.7 . 当我尝试使用-m64标志进行交叉编译时,我得到以下结果:

抱歉,未实现:64位模式未编译

而我的Linux发行版默认提供的编译器可以与-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-targets = i686-pc-linux-gnu,x86_64-pc-linux-gnu

不要改变这种情况 . 编译器仍抱怨未编译的64位模式:

$ 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 = i686-pc-linux-gnu,x86_64-pc-linux-gnu线程模型:posix gcc版本4.7.0 20120113(实验)(GCC)$ g -m64 c.cpp c.cpp:1:0 :抱歉,未实现:64位模式未编译

3 回答

  • 1

    刚解决了这个问题 . 在环境变量中,删除任何过时的c包的条目 .

    就我而言,我在Windows 64位上使用Anaconda . 在anaconda,我表演了'conda install mingw libpython' . Mingw是针对c编译器的 . 但是我之前安装的cygwin已经更新了 . 这就是冲突的原因 . 我通过简单地删除与这些c包对应的环境变量(PATH)解决了这个问题 .
    我已经尝试了几乎所有论坛,这个解决方案有效 .

    如果有人需要帮助,请告诉我 . :)

  • 21

    您将需要binutils和gcc配置:

    --enable-multilib
    

    可能:

    --enable-targets=i686-pc-linux-gnu,x86_64-pc-linux-gnu
    

    支持multilib( -m64 和/或 -m32 选项) . 你还需要两个版本的东西,如glibc,以便能够链接和运行生成的二进制文件 .

  • 10

    这通常意味着您使用的是错误的(旧)编译器 .

    新的编译器支持-m32和-m64 . 您必须将PATH设置为新的编译器(在Rtools的gcc,MinGW子目录中) before Rtools中的任何旧编译器 .

    尝试将编译器的二进制lib路径更新为64位版本 . lib文件夹等其他资源也应相应更改 .

相关问题