无法在 Windows 7 上使用 Rcpp 从源代码编译 [英] Cannot compile from source with Rcpp on Windows 7

查看:44
本文介绍了无法在 Windows 7 上使用 Rcpp 从源代码编译的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 Windows 7 虚拟机上运行 R 3.3 的新安装,并尝试安装我自己的使用 Rcpp 的 R 包.该软件包可在 GitHub 上获得.我已经安装了 Rtools 以及 Rcppdevtools

I am running a new installation of R 3.3 on a Windows 7 virtual machine, and trying to install my own R package that uses Rcpp. The package is available on GitHub. I have installed Rtools and both Rcpp and devtools

使用devtools::install_github("pbsag/tcadr"):

> devtools::install_github("pbsag/tcadr")
Downloading GitHub repo pbsag/tcadr@master
from URL https://api.github.com/repos/pbsag/tcadr/zipball/master
Installing tcadr
"C:/PROGRA~1/R/R-33~1.0/bin/x64/R" --no-site-file --no-environ --no-save  \
  --no-restore --quiet CMD INSTALL  \
  "C:/Users/Greg/AppData/Local/Temp/Rtmpwvw2qc/devtools1814572d2483/pbsag-tcadr-8ae1a82"  \
  --library="\\Mac/Home/Documents/R/win-library/3.3" --install-tests 

* installing *source* package 'tcadr' ...
** libs
c:/Rtools/mingw_64/bin/g++  -I"C:/PROGRA~1/R/R-33~1.0/include" -DNDEBUG    -I"\\Mac/Home/Documents/R/win-library/3.3/Rcpp/include" -I"d:/Compiler/gcc-4.9.3/local330/include"     -O2 -Wall  -mtune=core2 -c RcppExports.cpp -o RcppExports.o
RcppExports.cpp:4:18: fatal error: Rcpp.h: No such file or directory
 #include <Rcpp.h>
                  ^
compilation terminated.
make: *** [RcppExports.o] Error 1
Warning: running command 'make -f "C:/PROGRA~1/R/R-33~1.0/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-33~1.0/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="tcadr.dll" WIN=64 TCLBIN=64 OBJECTS="RcppExports.o get_df_from_binary.o write_df_to_binary.o"' had status 2
ERROR: compilation failed for package 'tcadr'
* removing '\\Mac/Home/Documents/R/win-library/3.3/tcadr'
Error: Command failed (1)

在 Rstudio 中克隆 repo 和构建:

Cloning the repo and building within Rstudio:

==> Rcmd.exe INSTALL --no-multiarch --with-keep.source tcadr

* installing to library '\\Mac/Home/Documents/R/win-library/3.3'
* installing *source* package 'tcadr' ...
** libs
c:/Rtools/mingw_64/bin/g++ -shared -s -static-libgcc -o tcadr.dll tmp.def RcppExports.o get_df_from_binary.o write_df_to_binary.o -Ld:/Compiler/gcc-4.9.3/local330/lib/x64 -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-33~1.0/bin/x64 -lR
C:\Rtools\mingw_64\bin\nm.exe: RcppExports.o: File format not recognized
C:\Rtools\mingw_64\bin\nm.exe: get_df_from_binary.o: File format not recognized
C:\Rtools\mingw_64\bin\nm.exe: write_df_to_binary.o: File format not recognized
RcppExports.o: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
no DLL was created
ERROR: compilation failed for package 'tcadr'
* removing '\\Mac/Home/Documents/R/win-library/3.3/tcadr'

Exited with status 1.

这个问题有同样的错误,但是接受的答案不适用,因为我的 git 存储库中没有任何已编译的目标文件.

This question has the same error, but that accepted answer does not apply because I don't have any compiled object files in my git repository.

请注意,我在 Windows 7 或 Mac 上的 3.2 中构建这个包没有问题.

Note that I have no problems building this package in 3.2 on Windows 7 or on Mac.

R version 3.3.0 (2016-05-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] devtools_1.11.1

loaded via a namespace (and not attached):
[1] httr_1.1.0     R6_2.1.2       tools_3.3.0    withr_1.0.1    rstudioapi_0.5
[6] curl_0.9.7     memoise_1.0.0  git2r_0.15.0   digest_0.6.9 

推荐答案

我最近不得不在 Windows 服务器上处理同样的问题.该问题与 Rtools 版本需要为 v3.4 而不是 v3.3 才能与 R v3.3.0 配合使用.

I recently had to deal with this same issue on a Windows server. The issue is related to the Rtools version needing to be v3.4 instead of v3.3 to work with R v3.3.0.

此外,您需要从系统的 PATH 变量中删除旧的 Rtools 路径重新安装之前!:

Furthermore, you need to remove the old Rtools' paths from your system's PATH variable before reinstall!:

c:\Rtools\binc:\Rtools\gcc-4.x-y\bin

https://cran.r-project.org/bin/下载 Rtools窗口/Rtools/

默认情况下,它看起来像 Rtools 3.4.设置为在安装时包含这两个路径:

By default, it looks like Rtools 3.4. is setup to include these two paths on install:

c:\Rtools\bin
c:\Rtools\mingw_32\bin

编辑 2

RTools 的一些东西,你有:

Edit 2

Few things with RTools, you have:

  1. R 工具集
  2. Cygwin DLL
  3. R 3.3.x + 32 位工具链
  4. R 3.3.x + 64 位工具链

确保检查以上所有内容.

Make sure all of the above are checked.

接下来尝试自己安装依赖包:

Next, try to installing the package dependencies by yourself:

install.packages(c("Rcpp","dplyr","data.table","testthat"))

从 GitHub 克隆存储库并打开项目文件后.尝试转到 RStudio 中的 Build 选项卡,然后选择 More -> Clean and Rebuild.

After you clone the repo from GitHub and open the project file. Try going to the Build tab in RStudio, then selecting More -> Clean and Rebuild.

这篇关于无法在 Windows 7 上使用 Rcpp 从源代码编译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆