gpt4 book ai didi

Markdown 中的 Rcpp

转载 作者:行者123 更新时间:2023-12-05 08:23:02 25 4
gpt4 key购买 nike

我正在尝试使用 Rmarkdown 文档中的 Rcpp 包创建的函数。但是以下会导致错误:

```{Rcpp firstChunk}
Rcpp::IntegerVector doubleMe(Rcpp::IntegerVector x) {
return x + x;
}
```

C:/Rtools/mingw_64/bin/g++ -I"C:/Users/JAKMIC~1/DOCUME~1/R/R-35~1.1/include" -DNDEBUG -I"C:/Users/jakmicha1/Documents/R/R-3.5.1/library/Rcpp/include" -I"C:/Users/jakmicha1/AppData/Local/Temp/RtmpQBQexm/sourceCpp-x86_64-w64-mingw32-0.12.18" -O2 -Wall -mtune=generic -c file17ec52d61f75.cpp -o file17ec52d61f75.o file17ec52d61f75.cpp:1:1: error: 'Rcpp' does not name a type Rcpp::IntegerVector doubleMe(Rcpp::IntegerVector x) { ^ make: *** [C:/Users/JAKMIC~1/DOCUME~1/R/R-35~1.1/etc/x64/Makeconf:215: file17ec52d61f75.o] Error 1 Error in Rcpp::sourceCpp(code = "Rcpp::IntegerVector doubleMe(Rcpp::IntegerVector x) {\n return x + x;\n}") : Error 1 occurred building shared library.

可能是什么原因,我该如何解决?

编辑:

感谢大家的回复。代码在运行 block 时似乎工作正常。编织时出现错误。

---
title: "title"
output: pdf_document
---

```{Rcpp firstChunk}
#include <Rcpp.h>

//[[Rcpp::export]]
Rcpp::IntegerVector double2Me(Rcpp::IntegerVector x) {
return x + x;
}
```

```{r callFirstChunkInR}
double2Me(c(2, 2))
```
# In command 'system(cmd)': 'make' not found

# Quitting from lines 7-13 (title.Rmd)
# Error in command '(function (file = "", code = NULL, env = globalenv(), embeddedR = TRUE, ':
# Error 1 occurred building shared library.
# Calls: <Anonymous> ... block_exec -> in_dir -> engine -> do.call -> <Anonymous>

我在 Windows 7 和 Rcpp_0.12.19 上的 RStudio 1.1.456 中使用 Rmarkdown 1.10。有什么想法吗?

最佳答案

R-markdown 中的 Rcpp block 等同于 Rcpp::sourceCpp,而不是 Rcpp:cppFunction。因此,您必须指定必要的包含并告诉 Rcpp 导出函数:

```{Rcpp firstChunk}
#include <Rcpp.h>
//[[Rcpp::export]]
Rcpp::IntegerVector doubleMe(Rcpp::IntegerVector x) {
return x + x;
}
```

关于 Markdown 中的 Rcpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com