GCC:对不起,未实现:64

我在我的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

不要改变这种情况。 编译器仍然抱怨未编译的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 = i686-pc-linux-gnu,x86_64-pc-linux-gnu线程模型:posix gcc version 4.7.0 20120113(experimental)(GCC)

$ g ++ -m64 c.cpp c.cpp:1:0:对不起,未实现:未编译的64位模式


您需要同时配置binutils和gcc:

--enable-multilib

并可能:

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

以支持multilib( -m64和/或-m32选项)。 你还需要像glibc这样的两个版本来链接和运行生成的二进制文件。


这通常意味着你正在使用错误的(旧)编译器。

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

尝试将您的编译器的二进制lib路径更新为64位版本。 其他资源,如lib文件夹也应相应地改变。


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

就我而言,我在Windows 64位的Anaconda工作。 在anaconda中,我执行了“conda install mingw libpython”。 Mingw用于c ++编译器。 但是我之前安装了cygwin的c ++编译器,这些编译器尚未更新。 这是冲突的原因。 我通过简单地删除与这些c ++包相对应的环境变量(PATH)来解决此问题。
我已经尝试了几乎所有的论坛,这个解决方案的作品。

如果有人需要帮助,请让我知道。 :)

链接地址: http://www.djcxy.com/p/86891.html

上一篇: GCC: sorry, unimplemented: 64

下一篇: UITableView and its cell in a xib file