2016-07-04 4 views
0

私のC++プログラムをコンパイルしようとすると、私はRファイルをリンクしていますが、RcppにはlibRcpp.soファイルがありません。ここlibRcpp.soファイルがない場合は、どのようにRcppをリンクできますか?

はRコードは、(私はC++を残してきた)である:

#include <R.h> 
#include <Rcpp.h> 
#include <RInside.h> 

**** some c++ code***** 

RInside R(argc, argv); 

    string cmd = "tmpf <- tempfile('nums');" 
       "png(tmpf);" 
       "counts <- table(a,b,c,d,e);" 
       "barplot(counts, main='My Plot', xlab='Letters');" 
       "dev.off();" 
       "tmpf"; 

    string tmpfile = R.parseEval(cmd); 

    cout << "Using plot " << tmpfile << endl; 
    unlink(tmpfile.c_str()); 

そしてIはGでコンパイルたい++

g++ -I/home/robert/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/include 
-I/home/robert/R/x86_64-pc-linux-gnu-library/3.2/RInside/include 
-I/usr/share/R/include -L/usr/lib/R/lib -lR 
-L/home/robert/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/libs -lRcpp 
-L/home/robert/R/x86_64-pc-linux-gnu-library/3.2/RInside/lib -lRInside 
Frequency-Analyzer.cpp 

をエラー読み取り:

/usr/bin/ld: cannot find -lRcpp 
collect2: error: ld returned 1 exit status 

-L/home/robert/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/libs は、 "libRcpp.so" ファイル。しかし、それはもはやリンクをサポートしていないので、私のディレクトリ内にlibファイルはありません。 RInsideでコンパイルするにはどうすればいいですか?

+0

examples /ディレクトリにRInsideに含まれている(GNU)Makefileを使用してください。 –

+0

ありがとうございます。これはうまくいった。これにより、プログラムの構築方法も少し分かりました。 – Robe

+0

嬉しいことです。以下の答えをお待ちしています。 –

答えて

1

あなたは、たとえばrinside_sample15.cppのようなものを使用しているようです。私は簡単供給使用して、そのを構築し、テストすることができMakefile

[email protected]:~/git/rinside/inst/examples/standard(master)$ make -f GNUmakefile 
    rinside_sample15 
ccache g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include \ 
    -I/usr/local/lib/R/site-library/RInside/include \ 
    -g -O2 -fstack-protector-strong -Wformat -Werror=format-security \ 
    -Wdate-time -D_FORTIFY_SOURCE=2 -g -O3 -Wall -pipe -Wno-unused \ 
    -pedantic -Wall rinside_sample15.cpp -Wl,--export-dynamic \ 
    -fopenmp -L/usr/lib/R/lib -lR -lpcre -llzma -lbz2 -lz -lrt -ldl \ 
    -lm -lblas -llapack -L/usr/local/lib/R/site-library/RInside/lib \ 
    -lRInside -Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib \ 
    -o rinside_sample15 
[email protected]:~/git/rinside/inst/examples/standard(master)$ 
[email protected]:~/git/rinside/inst/examples/standard(master)$ ./rinside_sample15 
Can now use plot in /tmp/xyplot56466f672e73.png 
[email protected]:~/git/rinside/inst/examples/standard(master)$ 

パスがあなたのために異なります、そしてあなたはccacheを持っていないかもしれませんが、それはまだ動作するはずです - またはあなたのRのインストールで問題があります。

+0

私はあなたの提案をしようとすると、私はこのエラーを取得: "は/ usr/binに/ ldは:-llzma見つけることができない" ":エラー:collect2はをldは1つの終了ステータスが返さ"「作る を:*** [rinside_sample8]エラー1 " – Robe

+0

そのライブラリの開発パッケージをインストールします。 –

関連する問題