2

我成功运行了包中的示例代码。然后我将 sample1 中的代码复制到我的另一个文件中,并将其设置为使用 Makefile 进行编译。还将样本副本复制到同一目录中。目录中的示例编译并运行良好。但是在我已经存在的代码中使用 R 会产生问题。编译时会出现错误提示 expected unqualified-id before âreturnâ。这发生在我声明的行中RInside R(argc, argv)

我注意到的另一件奇怪的事情是,如果我在包含文件的底部包含,我会在 Rcpp 等中得到一堆错误,但如果我将它包含在顶部,所有这些错误都会消失。

此外,软件包是否需要 -O3 的默认编译选项?我的大部分代码都在使用 -Ofast。浏览这里的问题,我认为我需要在 Makevars 中对 CXXFLAGS 进行更改,但我不知道在哪里。任何帮助表示赞赏。

我已将错误归结为我的设置中包含的另一个文件,即“kh”。这是一个用于连接 c++ 与 kdb+ 数据库的文件。如果我在 Rcpp 类中出现错误之前包含该文件。在 RInside 之后包含时,我得到了较早的错误unqualified id before return

这是有问题的文件:kh

已解决:似乎是变量名冲突。在我们所有的例子中RInside R(argc, argv)。一旦我将其更改为RInside L(argc, argv)一切正常。不知道为什么会这样,但它至少解决了问题。也测试了输出。

4

0 回答 0