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

时间:2012-01-14 08:41:03

标签: c++ gcc

我在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 =克++   COLLECT_LTO_WRAPPER =在/ usr /本地/ libexec目录/ GCC / i686的-PC-Linux的GNU / 4.7.0 / LTO-包装   目标: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位模式没有   编译在

4 个答案:

答案 0 :(得分:21)

  

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

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

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

答案 1 :(得分:10)

您将需要binutils和gcc配置:

--enable-multilib

可能:

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

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

有相同的问题。我的解决方案:

更新所有内容(R,Rstudio,R软件包)并关闭Rstudio。
卸载Rtools并安装最新版本。
在环境变量/系统变量/路径下仅添加2个条目:
   -C:\ Rtools \ bin
   -C:\ Rtools \ mingw_64 \ bin(!不是32位版本)
路径条目必须按此顺序且在%SystemRoot \ System32
以上 我没有在强烈建议的默认位置安装C:

之后,打开Rstudio并通过控制台重新安装Rcpp:
install.packages(“ Rcpp”)

测试其是否适用:
Rcpp :: evalCpp(“ 2 + 2”)

在那之后,只需切换到Rstudio中的终端,进入cmdstan源文件夹并键入'make build'。
---内置了CmdStan v2.19.1 ---
完成!

详细信息:

*> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)
Matrix products: default
locale:
[1] LC_COLLATE=Slovenian_Slovenia.1250  LC_CTYPE=Slovenian_Slovenia.1250    LC_MONETARY=Slovenian_Slovenia.1250 LC_NUMERIC=C                       
[5] LC_TIME=Slovenian_Slovenia.1250    
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
loaded via a namespace (and not attached):
[1] compiler_3.6.0 tools_3.6.0*