-2

基本的なサンプル rcpp_hello_world の作成に問題があります。http://blog.fellstat.com/?p=170で参照されている例に従いました。

次のエラーが見つかった場合、リンクまではすべて問題ありません

Building target: MyCppPackage_4
Invoking: Cross G++ Linker
g++ -L/usr/local/R/lib64/R/lib -o "MyCppPackage_4"  ./src/RcppExports.o ./src/main.o ./src/rcpp_hello_world.o  /usr/local/R/lib64/R/library/Rcpp/libs/Rcpp.so /usr/local/R/lib64/R/library/RInside/lib/libRInside.so -lR -lRblas
./src/main.o: In function `main':
/home/luigi/workspace-mars/MyCppPackage_4/Debug/../src/main.cpp:22: undefined reference to `rcpp_hello_world'
collect2: error: ld returned 1 exit status
make: *** [MyCppPackage_4] Error 1

ここに main.cpp ファイルのコード

/*
 * main.cpp
 *
 *  Created on: Jun 13, 2016
 *      Author: luigi
 */

#ifdef INSIDE

#include <Rcpp.h>

#include <RInside.h>    // for the embedded R via RInside
#include "rcpp_hello_world.h"

using namespace Rcpp;
using namespace std;

//RcppExport SEXP rcpp_hello_world();
#include <unistd.h>

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

    RInside R(argc, argv);              // create an embedded R instance

    SEXP s = rcpp_hello_world();

    Language call("print",s);

    call.eval();
    return 0;
}

#endif

乱雑な投稿で申し訳ありません ヒントをいただければ幸いです

4

1 に答える 1

1

まず、タグが間違っています。それはrinside質問であって、質問ではありませんrcpp

次に、 にはrinside、実際の例を含む 8 つの (そうです、8 つの) ディレクトリがあります。ディレクトリをに変更しexamples/standard/、と言いmakeます。十数個の例がビルドされます。

これらは、リファレンスおよび作業ビルド環境として機能します。これらをヘルプとして無視すると、ビルドが失敗する可能性があります。これが、動作する (テスト済み!!) 環境を提供する理由です。

于 2016-06-14T14:53:17.937 に答える