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