我尝试过了Knit HTML
以下 Rmd 文件:
---
title: "Untitled"
author: "Florian Privé"
date: "12 septembre 2016"
output: html_document
---
```{r fibCpp, engine='Rcpp'}
#include <Rcpp.h>
// [[Rcpp::export]]
int fibonacci(const int x) {
if (x == 0 || x == 1) return(x);
return (fibonacci(x - 1)) + fibonacci(x - 2);
}
```
我收到以下错误:
Building shared library for Rcpp code chunk...
Warning message:
l'exécution de la commande 'make -f "C:/PROGRA~1/R/R-33~1.1/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-33~1.1/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="sourceCpp_2.dll" WIN=64 TCLBIN=64 OBJECTS="file110c1d4643e9.o"' renvoie un statut 127
Quitting from lines 11-18 (test.Rmd)
Error in (function (file = "", code = NULL, env = globalenv(), embeddedR = TRUE, :
Error 1 occurred building shared library.
Calls: <Anonymous> ... block_exec -> in_dir -> engine -> do.call -> <Anonymous>
Exécution arrêtée
我做错了什么吗?是不是和Windows有关的问题?
环境信息来自sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252
[3] LC_MONETARY=French_France.1252 LC_NUMERIC=C
[5] LC_TIME=French_France.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] magrittr_1.5 rsconnect_0.4.3 htmltools_0.3.5 tools_3.3.1 yaml_2.1.13
[6] Rcpp_0.12.7 stringi_1.1.1 rmarkdown_1.0 stringr_1.1.0 digest_0.6.10
[11] evaluate_0.9
Rtools 安装检查通过devtools::find_rtools()
[1] TRUE
由于。。。导致的结果Sys.getenv()['PATH']
## PATH C:\Program
## Files\R\R-3.3.1\bin\x64;C:\ProgramData\Oracle\Java\javapath;C:\Program
## Files\NVIDIA GPU Computing
## Toolkit\CUDA\v7.5\bin;C:\Program
## Files\NVIDIA GPU Computing
## Toolkit\CUDA\v7.5\libnvvp;;C:\Program Files
## (x86)\Intel\iCLS Client\;C:\Program
## Files\Intel\iCLS
## Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program
## Files (x86)\Windows Live\Shared;C:\Program
## Files\Intel\Intel(R) Management Engine
## Components\DAL;C:\Program
## Files\Intel\Intel(R) Management Engine
## Components\IPT;C:\Program Files
## (x86)\Intel\Intel(R) Management Engine
## Components\DAL;C:\Program Files
## (x86)\Intel\Intel(R) Management Engine
## Components\IPT;C:\Program Files
## (x86)\Skype\Phone\;C:\Users\Florian\.dnx\bin;C:\Program
## Files\Microsoft DNX\Dnvm\;C:\Program Files
## (x86)\NVIDIA
## Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\Florian\Anaconda3;C:\Users\Florian\Anaconda3\Scripts;C:\Users\Florian\Anaconda3\Library\bin;C:\Program
## Files
## (x86)\Java\jre1.8.0_101\bin\client;C:\texlive\2015\bin\win32
根据所要求的信息Sys.getenv['PATH']不包含路径Rtools
以及其中的知识knitr
错误是由无效触发的engine路径,我认为你正在成为受害者开发工具::find_rtools()在设置时抛出误报。
这是通常的情况,因为如果无法找到Rtools在系统路径上,它扫描Rtools在注册表中,然后设置一个环境标志。在运行 rmarkdown 或包构建阶段期间,环境标志通常不会保留。另请参阅:为什么我需要在 has_devel() = TRUE 之前运行 find_rtools()?
例如。如果关闭所有打开的会话R会话,然后打开一个newR 会话和唯一类型Rcpp::evalCpp("2 + 2")
你可能会触发编译错误。
解决这个问题的方法很简单:Add the Rtools安装位置到PATH
系统变量。我维护了一个安装指南,实际上可以引导您逐步完成此过程:http://thecoatlessprofessor.com/programming/rcpp/install-rtools-for-rcpp/
从 Rtools 3.4 开始,必须将两个位置添加到PATH
are:
c:\Rtools\bin;
c:\Rtools\mingw_32\bin;
修改您的PATH
Windows 上的变量可以看到:
- 如何在 Windows 10 中设置系统环境变量?
- 什么是 PATH 和其他环境变量?如何设置或使用它们?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)