我不确定我做了什么,但我似乎无法在包含Rcpp代码的情况下构建此程序包。我已正确安装MinGW(我认为)并将其添加到我的路径中(我认为)。
完全披露,我几乎没有在Windows上工作。
当我尝试构建和重新加载时,这是我得到的错误:
Warning: running command 'make -f "C:/PROGRA~1/R/R-32~1.4RE/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-32~1.4RE/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="packagename.dll" WIN=64 TCLBIN=64 OBJECTS="RcppExports.o somefunC.o somefunC.o"' had status 127
ERROR: compilation failed for package 'packagename'
要检查的一些基本事项:
library(devtools)
find_rtools() # TRUE
has_devel()
"C:/PROGRA~1/R/R-32~1.4RE/bin/x64/R" --no-site-file --no-environ \
--no-save --no-restore --quiet CMD SHLIB foo.c
gcc -m64 -I"C:/PROGRA~1/R/R-32~1.4RE/include" -DNDEBUG -I"d:/RCompile/r-compiling/local/local323/include" -O2 -Wall -std=gnu99 -mtune=core2 -c foo.c -o foo.o
gcc -m64 -shared -s -static-libgcc -o foo.dll tmp.def foo.o -Ld:/RCompile/r-compiling/local/local323/lib/x64 -Ld:/RCompile/r-compiling/local/local323/lib -LC:/PROGRA~1/R/R-32~1.4RE/bin/x64 -lR
[1] TRUE
计算机上的系统路径变量:
%SystemRoot%\ system32;%SystemRoot%;%SystemRoot%\ System32 \ Wbem;%SYSTEMROOT%\ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files(x86)\ Brackets \ command; C:\ Program Files \ nodejs \; C:\ Program Files(x86)\ Skype \ Phone \; C:\ MinGW \ bin; C:\ MinGW \ msys \ 1.0 \ bin
几点说明:
@useDynLib packagename
指令@importFrom Rcpp evalCpp
更新:
evalCpp("2+2")
按预期工作答案 0 :(得分:4)
虽然我不知道导致我的解决方案(或者可能是组合)的具体步骤,但是在这个系统上安装RTools肯定存在一些问题。
我怀疑Rtools的非标准位置导致了这个问题。但我对Windows版本的推测知之甚少。