0

我尝试在 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!)错误,例如:

  • '内部没有命名类型'
  • 'StringProxy 没有命名类型等。

它有什么问题?

第二个问题:

在 .pro 文件中,我必须分别包含软件包的所有子文件夹,例如:

  • INCLUDEPATH += "W:\hesm\Private\Private\Qt 文件\ConnectToR\Rcpp\include\Rcpp\module"

是否可以在一个引号中包含一个文件夹(包)及其所有子文件夹?

谢谢

4

1 回答 1

1

你这样做是不对的。您引用的代码逐字逐句来自examples/standards/rinside_sample0.cppRInside 包的文件。

碰巧在目录中也有一个完整的 Qt 示例examples/qt/(尽管构建的是 Qt 应用程序而不是命令行应用程序)。你应该做

  qmake && make

并且构建了二进制文件——因为所有必需的逻辑都在.pro文件中。

您的问题实际上是关于如何使用 Qt Creator / Qt 构建工具,与 Rcpp 或 RInside 本身无关。

我们提供的示例都按记录和预期工作。构建它们,查看make执行的内容并推断您使用 Qt Creator 所需的内容(这是一个很好的工具,但 R 不支持开箱即用)。如果你想使用它,你需要在本地适应它。

于 2013-07-17T12:16:12.367 回答