我尝试在C ++(Qt创建者)中包含R代码。为了熟悉软件包Rcpp,RInside和R源代码R-3.0.1,我尝试运行以下示例:
#include <QCoreApplication>
#include<iostream>
#include<Rcpp.h>
#include <RInside.h> // for the embedded R via RInside
int main(int argc, char *argv[]) {
RInside R(argc, argv); // create an embedded R instance
R["txt"] = "Hello, world!\n"; // assign a char* (string) to 'txt'
R.parseEvalQ("cat(txt)"); // eval the init string, ignoring any returns
exit(0);
}
第一个问题:
文件string.h来自包Rcpp,但它总是生成一个批次(130!)错误,如:
它出了什么问题?
第二个问题:
在.pro文件中,我必须分别包含所有包的子文件夹,如:
是否可以在一个引号中包含一个包含所有子文件夹的文件夹(包)?
由于
答案 0 :(得分:1)
你做错了。您引用的代码是来自RInside软件包的examples/standards/rinside_sample0.cpp
文件的逐字。
恰好在examples/qt/
目录中还有一个完整的Qt示例(尽管构建了一个Qt应用程序而不是命令行应用程序)。你应该做
qmake && make
并且构建了二进制文件---因为 all 所需的逻辑位于.pro
文件中。
您的问题实际上是关于如何使用Qt Creator / Qt构建工具,并且与Rcpp或RInside本身无关。
我们提供的示例都按照记录和预期进行。构建它们,查看make
执行的内容,并推断出使用Qt Creator所需的内容(这是一个很好的工具,但不是开箱即用的R支持的工具)。如果你想使用它,你需要在本地适应它。