3

R を C++ プログラムに組み込みたい。そこで、R、Rcpp、RInside もインストールしました。しかし、UNIX で g++ を使用してコンパイルしているときに、多くの「未定義参照」エラーが発生します。コンパイルのために私が与えるコマンドは

g++ -I/path/to/R/include -I/path/to/Rcpp/include -I/path/to/RInside/include -L/path/to/R/libs -L/path/to/Rcpp/ libs -L/path/to/RInside/libs test.cpp -lRlapack -lRcpp -lRblas -lRInside"

test.cpp:

#include <RInside.h>                   
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);
}

エラー:

Undefined reference to R_ClassSymbol
Undefined reference to R_NilValue

R 変数に対して同様の 110 の未定義エラーが発生します。R およびその他のパッケージをデフォルトの場所ではなく、自分の場所にインストールしました。このエラーで 2 日間立ち往生しています。リンクなど、すべてを正しく行っているようです。よろしくお願いします。

4

3 に答える 3

2

RInsideのディレクトリには 10 を超える例が含まれてexamples/standard/います (MPI の例は、今のところ無視してかまいません)。これらをビルドしてみて、Makefile から適応させてみてください。

リンクエラーメッセージは、R から欠落しているシンボルを指しています。表示するコマンドには、その-lR部分がありません。(実際の)例をガイドとして使用して、それを追加してみてください。

于 2011-01-13T16:22:44.723 に答える
1

最後にそれを手に入れました....別のシステムに -enable-R-shlib を使用してすべてを新たにインストールしました。サンプルは正常に動作しました。私は今、いくつかの実装を進めることができます.Thanks

于 2011-01-17T06:40:48.790 に答える
1

(コードが正しく入力されたら更新して、読めるようにしました!)

役立つ例については、 http://dirk.eddelbuettel.com/code/rinside.htmlを参照してください。

于 2011-01-13T16:12:57.303 に答える