2011-10-29 2 views

답변

4

RInside을 사용하면 R과 연결되어서 R이 포함 된 독립 실행 형 C++ 프로그램을 만듭니다.

그러므로 valgrind의 사용은 다른 C++ 프로그램과 다를 바 없습니다. valgrind를 분석하기를 원하는 모든 코드는 올바른 설정 (Valgrind 사이트의 preparing your program 참조)으로 다시 작성해야 할 수 있으며이 구성 요소에 Valgrind 출력을 표시하려면 RRInside을 포함해야합니다. 간단한 프로그램을 컴파일

+0

: '#INCLUDE INT의 main() { RInside 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 -lR -lblas -llapack -L/usr/local/lib/R/site-library/Rcpp/lib -/usr/local/lib/R/site-library/RInside/lib -lRInside -Wl, -rpath,/usr/local/lib/R/사이트 라이브러리/Rcpp/usr/local/lib/R/site-library/RInside/lib -o testv' 이 링크가 있습니다. (http://pastebin.com/xVazvqaF) 오류가 있습니다. – ggg

+1

게시 해 주셔서 감사합니다. 나는 훌륭한 Valgrind 사용자는 아니지만, 나에게 * 깨끗하게 보입니다. 그것은 libz (R이 연결되는)에서 오는 몇 가지 문제를보고하지만 R (또는 RInside) 자체의 문제는보고하지 않습니다. 그래서 아무런 문제도 없습니다. ** 실제로 ** 그 점을 증명하려면 실제로 의도적 인 누설을 추가 할 수 있습니다 (예 : 10 배의 100k 메모리를 루프에 할당하고 결코 해제하지 마십시오). 그러면 Valgrind가 그 오류에 손가락을 대고있는 것을 볼 수 있습니다. –

+0

RInside 사용자가 libz 및 다른 코드를 무시할 가능성이 있기 때문에 libz 및 기타 코드에서 발생하는 문제를 억제 할 수 있습니까? – ggg