Chapter 16 Armadillo 불러오기

R에서 install.package("RcppArmadillo")으로 RcppArmadillo을 설치하고, C++ 파일에서 Armadillo을 사용할 떄에는 다음과 같이 불러올 수 있다.

//[[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>

참고로 RcppArmadillo을 불러오면 자동으로 Rcpp까지 불러오기 떄문에 따로 #include <Rcpp.h>를 추가할 필요는 없다. (오히려 Rcpp을 추가로 불러오게 되면 에러가 발생한다!)

16.1 Mac에서 오류 발생 시

Mac에서 RcppArmadillo를 사용하여 C++ 코드를 컴파일 했을 때, 아래의 오류가 발생할 수 있다.

library not found for -lgfortran

이는 Fortran 라이브러리 경로를 찾지 못했을 때 발생하며, 환경변수를 설정하여 해결할 수 있다.

터미널에서 아래 코드로 gfortran이 설치되어 있으면 다음으로 넘어가고,

gfortran --version

설치가 되어있지 않을 경우에는 아래 명령어로 gfortran을 설치해준다.

brew install gfortran

다음으로 “~/.R/Makevars” 파일을 생성해주고

mkdir -p ~/.R
touch ~/.R/Makevars

“~/.R/Makevars” 파일을 열어 아래의 내용을 추가한 후 저장한다.

FLIBS = -L/usr/local/opt/gcc/lib/gcc/current -lgfortran -lquadmath -lm

이상이 없다면 R을 종료하고 다시 실행하게 되면 에러가 발생하지 않을 것이다.