r - 如何让 Rcpp 工作?

标签 r gcc rcpp

我无法让 Rcpp 在 Windows 8.1 上工作。当我运行以下最小示例时,出现错误。

> library(Rcpp)
> evalCpp("1 + 1")
g++ -m64 -I"C:/R/R-31~1.0/include" -DNDEBUG     -I"C:/R/R-3.1.0/library/Rcpp/include"  -  
I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c file11dc2120723d.cpp -o  
file11dc2120723d.o g++: not found make: *** [file11dc2120723d.o] Error 127 Warning message: running
command 'make -f "C:/R/R-31~1.0/etc/x64/Makeconf" -f "C:/R/R-31~1.0/share/make/winshlib.mk"
SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="sourceCpp_97232.dll" WIN=64 TCLBIN=64
OBJECTS="file11dc2120723d.o"' had status 2  
Error in sourceCpp(code = code, env = env, rebuild = rebuild, showOutput = showOutput,  : 
  Error 1 occurred building shared library.

我的路径中的前两个条目是:
PATH=c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;

R 安装在目录 C:\R\R-3.1.0

Rtools 位于目录 C:\R\Rtools

一些附加信息:
> library(devtools)
> find_rtools(T)

Scanning path...
ls : c:\Rtools\bin\ls.exe 
Scanning registry...
Found c:/Rtools for 3.1 
VERSION.txt
Rtools version 3.1.0.1942 
 [1] TRUE

> has_devel()
"C:/R/R-31~1.0/bin/x64/R" --vanilla CMD SHLIB foo.c 

gcc -m64 -I"C:/R/R-31~1.0/include" -DNDEBUG     -I"d:/RCompile/CRANpkg/extralibs64/local/include"     
O2 -Wall  -std=gnu99 -mtune=core2 -c foo.c -o foo.o
gcc: not found
make: *** [foo.o] Error 127
Warning message:
running command 'make -f "C:/R/R-31~1.0/etc/x64/Makeconf" -f "C:/R/R-31~1.0/share/make/winshlib.mk"
SHLIB="foo.dll" WIN=64 TCLBIN=64 OBJECTS="foo.o"' had status 2 
Error: Command failed (1)

> system('g++ -v')
Warning message:
running command 'g++ -v' had status 127 

最佳答案

不确定您是否已经解决了您的问题,但您似乎没有安装 gcc 或 g++。对于 Windows,您可以使用 MinGW 获取这些工具。

  • 安装可以从 here 下载的 MinGW .信息主页是here
  • 安装 MinGW 后,您可以打开“MinGW 安装管理器”并为“mingw32-gcc-g++”安装 bin 和 dev。
  • 然后,您必须更新 PATH 环境变量以包含“C:\MinGW\bin”和“C:\MinGW\msys\1.0\bin”。
  • 重新启动您的 R session ,重新安装“Rcpp”也不会受到伤害,然后尝试 require(Rcpp); evalCpp("1 + 1")再次。
  • 关于r - 如何让 Rcpp 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458841/

    相关文章:

    矩形 ggplot2 geom_point 形状

    r - 颜色根据组别而强度根据注入(inject)量,如何实现?

    r - 如果列包含字符串,则输入该行的值

    c++ - 不明确的重载 - 带有参数包的部分函数模板排序

    r - 无法将 Rcpp::sugar::Plus_Vector_Primitive 转换为 Rcpp::traits::storage_type

    r - 从 RStudio 控制台复制文本为 "plain text"

    我可以进行优化,但不受重新排序语句的影响吗?

    c++ - GCC 和 NVCC 之间的代码共享

    r - 如何在不知道 Rcpp 类型的情况下处理向量

    c++ - Rcpp - 在包结构之外编译