我在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位模式没有 编译在
答案 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*