Mac OS에서 Unsupported option '-fopenmp' 문제 해결법
최근 연구를 하고 있는 BMDS란 주제를 가지고 관련 R 패키지를 만드는 프로젝트에 참여하고 있는 중 인데, 내 Mac OS에서 컴파일을 하려고 보니 위와 같은 에러 메세지가 발생을 하고 컴파일이 되지 않았다.
패키지를 처음 release한 개발자에게 물어보니 본인은 Linux환경에서 프로그램을 개발을 하고 있고, Linux나 Windows에는 이상 없이 잘 되는데, Mac은 아마 추가 작업이 필요할 것이라고만 코멘트를 남겨주고, Mac OS의 기본 Clang이 OpenMP를 지원하지 않아서 그렇다는 코맨트를 남기고 솔루션은 너가 알아서 찾아봐라라는 식의 대답을 줘서 세시간정도 삽질을 거친 이후에 이 문제를 해결을 하였다.
- "Unsupported option '-fopenmp' 컴파일 에러 해결책
1. 터미널을 열고 패키지 매니징 소프트웨어인 Home Brew를 설치한다 (https://brew.sh/)
2. Brew 에서 llvm 를 설치한다. (터미널에서 brew install llvm)
3. vim이나 다른 택스트 편집소프트웨어로 makevars 라는 이름을 가진 파일을 ~/.R/에 만든다. (~는 본인의 home디렉토리를 의미한다.)
아마 ~/.R/폴더가 없을 수 도 있는데 이때는 터미널에서 직접 폴더를 만들어야 한다. 터미널에서 mkdir 을 이용해서 .R폴더를 만들어야 한다.
4. makevars 파일을 열고 아래 회색박스의 내용을 붙여넣기 하고 저장을한다.
C=/usr/local/opt/llvm/bin/clang
CXX=/usr/local/opt/llvm/bin/clang++
6. R 콘솔에서 해당 패키지를 설치한다.
R 콘솔 명령어 - install.packages("path_of_Package.tar.gz", repos = NULL, type =‘‘source’’).
"path_of_Package.tar.gz" 부분을 파일 경로에 맞게 수정을 해주고 설치를 시도한다.
7. 위 과정이 제대로 이루어 졌다면 -fopenmp 문제는 해결이 될 것이고 패키지도 문제없이 컴파일이 될 것이다.
마무리
적고나니 굉장히 간단해 보이지만, 해결을 한다고 엄청난 삽질을 했었다. 내 블로그를 읽고 계신 분들 중에 똑같은 문제를 가지고 계신 분들이 조금이나마 시행착오를 줄일 수 있으면 하는 마음에 솔루션을 정리해 본다.
글이 도움이 되셨다면 구독과 좋아요 부탁드립니다!
댓글