Closed. This question is not reproducible or was caused by typos 。它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 Stack Overflow 的 on-topic

4年前关闭。



Improve this question




我不确定我做了什么,但是当它包含 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

一些注意事项:
  • 在我的描述文件中,我导入了 Rcpp,并添加了链接 LinkingTo: Rcpp
  • 在我的包文档中,我有 @useDynLib packagename 指令
  • 在我的包中我也有 @importFrom Rcpp evalCpp

  • 更新:
  • 当我删除 src 目录时,包会构建。
  • evalCpp("2+2") 按预期工作
  • 现在 RBuildTools 在路径上,当我重新启动 R 时,我看到一个“纯虚拟方法”出现。
  • 我还收到一条新的错误消息 c:/Rtools/mingw_64/bin/g++;未找到。这很有趣,因为 Rtools 安装在名为 RBuildTools 的文件夹中(我没有选择)并且在路径中。
  • 最佳答案

    虽然我不知道是什么具体步骤导致了我的解决方案(或者可能是组合),但在这个系统上安装 RTools 肯定有问题。

  • 更新到较新的 R 版本
  • 再次安装软件包
  • 安装的MingW
  • 将 MingW 添加到路径
  • 在 C:/Rtools 重新安装了 Rtools(它是在这台机器上的 RBuildTools)
  • 删除了 RBuildTools/路径中的引用,将它们更改为 Rtools/

  • 我怀疑是 Rtools 的非标准位置导致了问题。但我对 Windows 版本的了解不够,无法进行推测。

    关于r - 带有 Rcpp 代码的包不会在 Windows 上构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39302194/

    10-12 17:49