R: 将R与Eureqa连接,Rcpp编译错误



我正试图从R中运行Eureqa。http://code.google.com/p/eureqa-api/我正在使用下面的代码,但我得到了一个编译错误:

Error in compileCode(f, code, language = language, verbose = verbose) : 
  Compilation ERROR, function(s)/method(s) not created! 

library(Rcpp)
library(inline) 
rcpp1 <- '

int main(int argc, char *argv[])
{


  // initialize data set and options
  eureqa::data_set data("abc1.txt");
  eureqa::search_options options("y = f(x)");
  // connect to a eureqa server
  eureqa::connection conn("127.0.0.1");
  conn.send_data_set(data);
  conn.send_options(options);
  conn.start_search();
  // display results
  eureqa::search_progress progress;
  eureqa::solution_frontier solutions;
  while (conn.query_progress(progress))
  {
    solutions.add(progress.solution_);
    std::cout << progress.summary() << std::endl;
    std::cout << solutions.to_string() << std::endl;
  }
  return 0;
}
'

rcpp2 <- cxxfunction(
                       rcpp1, plugin="Rcpp", 
                       includes=c('#include  <eureqa/eureqa.h>, <iostream>'))


rcpp2()

我将感谢你的帮助。

那么,错误是什么?

当你告诉cxxfunction()关于一个头文件时,你可能仍然需要告诉编译器从哪里得到它——而且可能还必须告诉编译器(调用链接器)链接到哪个库以及在哪里找到它。"Rcpp常见问题解答"小插曲有一个关于如何告诉cxxfunction()在哪里找到GSL头和库的例子。

最后,includes=c('#include <eureqa/eureqa.h>, <iostream>'看起来非常错误。也许你的意思是:

 include=c("#include <eureqa/eureqa/eureqa.h>", "include <iostream>")

相反。

最新更新