2011-10-29 4 views

答えて

4

RInsideを使用すると、Rにリンクされて、スタンドアロンのC++プログラムが作成され、Rが埋め込まれます。

したがって、valgrindの使用は、別のC++プログラムと違いはありません。 Valgrindで分析するコードはすべて、適切なセットアップ(Valgrindサイトのpreparing your programを参照)で再構築する必要があり、Valgrind出力をこれらのコンポーネントにも出力する場合は、RRInsideが含まれます。

+0

簡単なプログラムのコンパイル: '#include int main(){ R内部R; } ' と ' g ++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include -pipe -O0 -g -Wall testv.cpp -L/usr/lib64/R/lib -l -lblas -llapack -L/usr/local/lib/R/site-library/Rcpp/lib -/usr/local/lib/R/site-library/RInside/lib -lRInside -Wl、-rpath、/ lrcpp -Wl、-rpath、/ usr/local/lib/R/site-library/Rcpp /私はこれを得た[リンク](http://pastebin.com/xVazvqaF) 間違いがありました!ありがとうございました! – ggg

+1

投稿していただきありがとうございます。私はValgrindの偉大なユーザーではありませんが、それは私にはきれいに見えます。libz(Rにリンクする)から生じるいくつかの問題は報告されますが、R(またはRInside)自体には何もありません。だから問題はない。 **本当に**その点を証明するには、実際に目的のリークを明示的に追加することができます(つまり、ループ内に100kのメモリを10回割り当てて、それを決して解放しないでください)、Valgrindがそのエラーを指摘するはずです。 –

+0

RInsideユーザがおそらくそれらを無視するので、libzや他のコードから生じる問題を抑制することはできますか? – ggg

関連する問題