2014-07-23 2 views
0

우분투 패키지의 표준 예제와 함께 RInside를 사용하려고합니다. 방금 설치 한 후 RInside 소스에서 make 명령을 사용했습니다.Linux에서 RInside 예제를 컴파일하지 못했습니다.

내 OS에 대한 정보 : gcc 버전 4.8.2 (Ubuntu 4.8.2-19ubuntu1), GNU Make 3.81, R 버전 3.0.2 (2013-09-25), RInside 0.2.11 및 Ubuntu 14.04.

다음은 컴파일 오류입니다. 누구든지 나를 도울 수 있습니까? :)

g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include -O3 -pipe -g -Wall rinside_module_sample0.cpp -L/usr/lib/R/lib -lR -lblas -llapack -L/usr/local/lib/R/site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -o rinside_module_sample0 
In file included from /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h:64:0, 
      from /usr/local/lib/R/site-library/RInside/include/RInsideCommon.h:38, 
      from /usr/local/lib/R/site-library/RInside/include/RInside.h:26, 
      from rinside_module_sample0.cpp:7: 
rinside_module_sample0.cpp: In function ‘int main(int, char**)’: 
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:5: error: ‘Shield’ was not declared in this scope 
Shield<SEXP> __load_module_call__(Rf_lang2(GET_MODULE_SYM, _rcpp_module_boot_##NAME()); \ 
^ 
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’ 
R["bling"] = LOAD_RCPP_MODULE(bling) ; 
      ^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:5: note: suggested alternative: 
Shield<SEXP> __load_module_call__(Rf_lang2(GET_MODULE_SYM, _rcpp_module_boot_##NAME()); \ 
^ 
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’ 
R["bling"] = LOAD_RCPP_MODULE(bling) ; 
      ^
In file included from /usr/local/lib/R/site-library/Rcpp/include/Rcpp/protection/protection.h:21:0, 
      from /usr/local/lib/R/site-library/Rcpp/include/RcppCommon.h:129, 
      from /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h:27, 
      from /usr/local/lib/R/site-library/RInside/include/RInsideCommon.h:38, 
      from /usr/local/lib/R/site-library/RInside/include/RInside.h:26, 
      from rinside_module_sample0.cpp:7: 
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/protection/Shield.h:29:11: note: ‘Rcpp::Shield’ 
class Shield{ 
    ^
In file included from /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h:64:0, 
      from /usr/local/lib/R/site-library/RInside/include/RInsideCommon.h:38, 
      from /usr/local/lib/R/site-library/RInside/include/RInside.h:26, 
      from rinside_module_sample0.cpp:7: 
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:16: error: expected primary-expression before ‘>’ token 
Shield<SEXP> __load_module_call__(Rf_lang2(GET_MODULE_SYM, _rcpp_module_boot_##NAME()); \ 
      ^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’ 
R["bling"] = LOAD_RCPP_MODULE(bling) ; 
      ^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:94: error: expected ‘)’ before ‘;’ token 
Shield<SEXP> __load_module_call__(Rf_lang2(GET_MODULE_SYM, _rcpp_module_boot_##NAME()); \ 
                         ^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’ 
R["bling"] = LOAD_RCPP_MODULE(bling) ; 
      ^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:452:13: error: ‘__load_module_call__’ was not declared in this scope 
Rf_eval(__load_module_call__), R_GlobalEnv); 
     ^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’ 
R["bling"] = LOAD_RCPP_MODULE(bling) ; 
      ^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:452:48: error: expected ‘;’ before ‘)’ token 
Rf_eval(__load_module_call__), R_GlobalEnv); 
              ^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’ 
R["bling"] = LOAD_RCPP_MODULE(bling) ; 
      ^
make: *** [rinside_module_sample0] Error 1 
+3

컴파일 오류 덤프보다 더 많은 정보를 제공해야합니다. RInside와 Ununtu의 어떤 버전을 사용하고 있습니까? Make와 GCC의 어떤 버전을 사용하고 있습니까? 여기에 오기 전에 실패한 컴파일을 수정하기 위해 어떤 조치를 취했습니까? 그 단계의 결과는 무엇입니까? – skrrgwasme

+0

답변 해 주셔서 감사합니다. 나는 비교적 새로운 프로그래밍에 익숙하다. 나는 그 질문을 잘못된 방식으로 묻는다고 생각한다. 내 OS에 관한 정보 : gcc 버전 4.8.2 (Ubuntu 4.8.2-19ubuntu1), GNU Make 3.81, R 버전 3.0.2 (2013-09-25), RInside 0.2.11 및 Ubuntu 14.04. 나는 단지 설치하고 여러 번 RIside 패키지를 제거했습니다. 나는 또한 그것들을 다른 경로에 넣으려고했다. 그러나 그것은 효과가 없었습니다. 프로그래밍에 관한 나의 제한된 지식 때문에 나는 지금 무엇을 해야할지 정말로 모른다. 희망이 시간은 내 질문에 더 나은 aked – winedate

+1

그건 꽤 과도한 downvoting입니다. 그것은 공정한 질문이며 합리적으로 명확하게 게시됩니다. –

답변

2

당신의 질문은 당신이 편집을 시작하는 방법 를 보이지 않았다. RInside는 R과 Rcpp에 의존하기 때문에 중간에 복잡한 Makefile을 사용합니다. 하지만 이라면 그럴 것입니다. 일을해야합니다. 내 우분투 14.04 시스템 및 패키지와 함께 설치됩니다 RInside에 대한 자식의 repo에있는 코드를 사용에서 당신은 CRAN에서 얻을 : 나는 반영하기 위해 R의 데비안/우분투 패키지를 변경하기 때문에

[email protected]:~$ cd git/rinside/inst/examples/standard/ 
[email protected]:~/git/rinside/inst/examples/standard$ make rinside_sample0 
g++-4.8 -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 \ 
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 \ 
-g -O3 -Wall -pipe -Wno-unused -pedantic -Wall \ 
    rinside_sample0.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_sample0 
[email protected]:~/git/rinside/inst/examples/standard$ ./rinside_sample0 
Hello, world! 
[email protected]:~/git/rinside/inst/examples/standard$ 

이 꽤 장황 대부분의 기본 강화 플래그, 게다가 우리는 여러 가지 헤더와 라이브러리가 필요합니다.

하지만 중요한 점은 예제 디렉토리에 make이라고 말하면 모든 것이 빌드되어야합니다.

+1

안녕하세요. Dirk, 답변 해 주셔서 감사합니다. 방금 RInside/examples/standard 디렉토리에 있었고 터미널에서 make라고 말했습니다. 나는 표준 단계를 따르는 모든 일을한다고 생각한다. 그러나 컴파일이 여전히 작동하지 않는 것 같습니다. 또한 apt-get install을 호출하여 R을 얻습니다. 내 R에 문제가 있습니까? – winedate

+0

R 버전이 좋겠지 만 Rcpp 버전을 업데이트해야 할 수도 있습니다. CRAN에서 Rcpp를 다시 설치하고 RInside를 다시 설치 한 다음 예제를 시도하십시오. –

+0

답장을 보내 주셔서 감사합니다. 나는 그것을 시도 할 것이다 :) – winedate