CVOC라는 R 패키지를 만들고 있습니다. 여기에는 C++ 코드가 포함되어 있으며 C 라이브러리 gmp의 고정밀 산술을 사용합니다.R 패키지를 생성하는 중 오류가 발생했습니다 : dyn.load (파일, DLL 경로 = DLL 경로, ...)의 오류
패키지는 다음 단계에 의해 생성 될 : 패키지 골격을 만들 Rcpp :: Rcpp.package.skeleton를 사용
1). 정확한 폴더
3
) roxygen2를 사용 .Rd 문서 파일 생성으로 등 DESCRIPTION, NAMESPACE, Makevars 등 필요한 파일을 복사하는2) :: roxygenise()
4) R CMD 확인하여 R-패키지를 확인
5) 내가 R의 CMD는 다음과 같은 오류 메시지가 온다 "CVOC"을 확인 실행하면 R CMD는
를 구축하여 R-패키지를 구축까지 :
* installing *source* package ‘CVOC’ ...
** libs
g++ -std=c++11 -I/usr/share/R/include -DNDEBUG -I"/home/fabian/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/include" -I"/home/fabian/R/x86_64-pc-linux-gnu-library/3.2/RcppMP/include" -I"/home/fabian/R/x86_64-pc-linux-gnu-library/3.2/BH/include" -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RcppExports.cpp -o RcppExports.o
g++ -std=c++11 -I/usr/share/R/include -DNDEBUG -I"/home/fabian/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/include" -I"/home/fabian/R/x86_64-pc-linux-gnu-library/3.2/RcppMP/include" -I"/home/fabian/R/x86_64-pc-linux-gnu-library/3.2/BH/include" -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c etcND.cpp -o etcND.o
g++ -std=c++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o CVOC.so RcppExports.o etcND.o -L/usr/lib/R/lib -lR
installing to /home/fabian/Desktop/CVOCcreate/CVOC.Rcheck/CVOC/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/fabian/Desktop/CVOCcreat/CVOC.Rcheck /CVOC/libs/CVOC.so':
/home/fabian/Desktop/CVOCcreate/CVOC.Rcheck/CVOC/libs/CVOC.so:
undefined symbol: __gmp_bits_per_limb
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/fabian/Desktop/CVOCcreate/CVOC.Rcheck/CVOC’
bash 스크립트 createCVOC.sh를 포함한 모든 필요한 파일은 github 저장소 https://github.com/SchroederFabian/CVOC에 있습니다.
도움을 주시면 감사하겠습니다.
감사합니다. 제안한대로 Makevars 파일의 줄을 PKG_LIBS = -lgmpxx -lgmp로 변경했습니다. 그러나 로그의 플래그를 변경하지 않아도 변경되지 않습니다. 동일한 오류 '알 수없는 기호'가 나타납니다. – fabianschroeder
당신의 의견은 Makevars 파일을 src 폴더 대신 루트 폴더에 복사했다는 것을 알게되었습니다. 지금은 효과가있는 것 같습니다. 고맙습니다! – fabianschroeder
GitHub 레포에서하는 일은 드문 것 같습니다. 매번 골격 함수를 다시 실행하거나 파일을 복사 할 이유가 없습니다. 올바른 레이아웃을 작성하고 커밋하십시오. 수많은 다른 저장소와 그 저장소의 기능을 살펴보십시오. 또한, 답변이 도움이된다면, 그것을 받아들이십시오 ('틱'마크 만 클릭하십시오). –