- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我最近从亚马逊下载了 2013 Rcpp 书,以学习如何更好地使用 C++ 和我的 R 代码,我正在尝试使用第一个斐波那契递归函数和包装器的第一个编译示例,看看我是否可以做到。我在 Ubuntu 上使用最新的 R。
首先是我的 C++:
/* Cpp based recurive function */
int fibonacci(const int x){
if(x == 0) return(0);
if(x == 1) return(1);
return(fibonacci(x - 1) + fibonacci(x - 2));
}
/* Wrapper */
extern "C" SEXP fibWrapper(SEXP xs) {
int x = Rcpp::as<int>(xs);
int fib = fibonacci(x);
return(Rcpp::wrap(fib));
}
然后我启动 sh 并输入:
PKG_CXXFLAGS=`Rscript -e 'Rcpp:::CxxFlags()'`
PKG_LIBS=`Rscript -e 'Rcpp:::LdFlags()'`
R CMD SHLIB Fibonacci.cpp
但是我得到:
g++ -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c Fibonacci.cpp -o Fibonacci.o
Fibbonacci.cpp:10:12: error: 'SEXP' does not name a type
make: *** [Fibonacci.o] Error 1
我想也许我的 C++ 代码中需要 include 指令,所以我又做了一次,但这次是 #include<Rcpp.h>
在 C++ 文件的顶部,再次在 sh 中执行相同的命令,但仍然没有任何乐趣:
g++ -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c Fibonacci.cpp -o Fibonacci.o
Fibonacci.cpp:1:18: fatal error: Rcpp.h: No such file or directory
compilation terminated.
make: *** [Fibbonacci.o] Error 1
我做错了什么?如果我查询我在 sh 中设置的值:
$PKG_CXXFLAGS
sh: 9: -I/local/yrq12edu/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include: not found
$PKG_LIBS
sh: 10: -L/local/yrq12edu/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/lib: not found
但我认为未找到的消息只是因为 -L 标志,因为如果我 cd 到目录,文件就在那里。
谢谢,本。
最佳答案
您似乎忽略了一个重要的细节。当你做的时候
PKG_CXXFLAGS=`Rscript -e 'Rcpp:::CxxFlags()'`
PKG_LIBS=`Rscript -e 'Rcpp:::LdFlags()'`
R CMD SHLIB Fibonacci.cpp
前两个的结果应该被赋值并导出到 shell。您在这里所做的“分配并忘记”。
list 2.1 显示了这一点(或者可能是电子书丢掉了它——我没有电子书),您错过的是非常重要的尾部反斜杠,它使一切都成为一个单一的行:
PKG_CXXFLAGS=`Rscript -e 'Rcpp:::CxxFlags()'` \
PKG_LIBS=`Rscript -e 'Rcpp:::LdFlags()'` \
R CMD SHLIB Fibonacci.cpp
现在赋值发生在与调用 R(shell 脚本本身)相同的执行中,它具有值并在调用 g++ 时传递它们。
您可以从接下来的两行中看出,我在其中完整引用了包含所有必需的 -I 和 -L 部分的结果命令。因此(编译和链接步骤)都跨越多行。
所以这本书是正确的,如果按照所示的方式完成所有这些工作。内联(在本章后面讨论)和属性(也在同一章后面讨论)基本上为您完成了 PKG_CXXFLAGS
和 PKG_LIBS
分配。
编辑:此外,您的测试是错误的。你的意思可能是这个
$ PKG_CXXFLAGS=`Rscript -e 'Rcpp:::CxxFlags()'`
$ echo $PKG_CXXFLAGS
-I/usr/local/lib/R/site-library/Rcpp/include
$
您不能只“调用”一个 shell 变量,因此您会得到“未找到”的答案。
编辑 2:无论如何,您尝试的示例实际上只是为了激发第 2.4 节中的其余讨论,其中详细说明了多么费力、容易出错……这是——导致第 2.5 节和2.6 关于inline和Attributes。两者都好得多;使用那些。
关于c++ - rcpp First 编译麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19140348/
目前,我正在为网络开发类(class)做作业。 这些是说明:第一行和首字下沉样式Jakob 希望文章的第一行以小写大写字母显示。转到 First Line and Drop Cap Styles 部分
.first() 方法是在 jQuery 1.4 中添加的。 :first 选择器自 1.0 以来就已存在。 来自文档: :first The :first pseudo-class is equiv
我正在审查现有的 ASP.NET MVC (5.2.3) EF (6.1.3) 项目。 该项目使用 ASP.NET Identity,我检查了 web.config 中的 2 个连接字符串,一个用于
为什么人们使用 mid=first+(last-first)/2 而不是 (first+last)/2,在二进制搜索的情况下)两者有区别吗。如果有,请告诉我,因为我无法理解其中的区别。 最佳答案 如果
为什么人们使用 mid=first+(last-first)/2 而不是 (first+last)/2,在二进制搜索的情况下)两者有区别吗。如果有,请告诉我,因为我无法理解其中的区别。 最佳答案 如果
for(auto it = M.begin(); it!=M.end();it++) { coutfirstsecondsecond == 1) return it->firs
我试图从第二个循环中获取循环的第一项。 我知道我得到了这样的@key @../key 但@first 似乎不像@../first 那样工作 有什么想法吗? 问候 最佳答案 首先,无论是否在嵌套 blo
var tab1 = $('.tabs a:first-child').attr('href'); alert(tab1); .. 尽管同一页面上有两个 div.switch,但仅匹配一个。第二个位于
我想知道如何将节点*变量 NODE 分配给结构内的数据? struct node { int info; struct node *link; }; typedef struct nod
我有两个段落包含在一个 div 中。我想让第一段的文字变大一点,但使用 :first-child 并不能像我所说的那样工作。看不出有什么问题。
我有一个 ul li 列表 Parent child1 child2
我有三个表,即员工、部门和申诉。 Employees 表有超过一百万条记录。我需要找到员工的详细信息、他/她的部门以及他/她提出的申诉。 我可以想到以下两个查询来查找结果: 1。先过滤记录,只获取需要
我有三个表,即员工、部门和申诉。 Employees 表有超过一百万条记录。我需要找到员工的详细信息、他/她的部门以及他/她提出的申诉。 我可以想到以下两个查询来查找结果: 1。先过滤记录,只获取需要
这有什么区别吗: myList.Where(item => item == 0).First(); 还有这个: myList.First(item => item == 0); 后者对我来说更有意义,
我分不清 element:first-child 之间的区别和 element:first-of-type 例如,你有一个 div div:first-child → 全部 元素是其父元素的第一个子元
当我遇到一个奇怪的情况时,我正在研究 CSS 选择器。 如果我使用 :first-child 伪元素,我需要在它前面加上一个空格才能工作,否则它将无法工作。然而 :first-letter 伪元素的情
请考虑以下字符串数组: let strings = ["str1", "str2", "str10", "str20"] 假设需要获取包含 5 个字符的第一个元素 (String),我可以使用 fil
让我们假设我们要开始新项目 - 包含一些业务逻辑的应用程序、ASP.NET 上的用户界面、WPF 或两者。我们想使用 ORM 或 DAL 代码生成器并在 .NET 类中实现我们的业务逻辑。我们可以通过
我有一种树系统。我想做的是给所有 parent 一个 margin ,除了第一个。这是我的 HTML: Test
我分不清 element:first-child 之间的区别和 element:first-of-type 例如,你有一个 div div:first-child → 全部 元素是其父元素的第一个子元
我是一名优秀的程序员,十分优秀!