Oracle VM Virtual Box로 llvm build를 계속 실패하다가 결국 window 환경에서 build하게 되었다.
VM에서 실패한 이유는 메모리 부족이라고 추정하고는 있지만, 정확한 이유는 찾지 못했다.
나와 같은 문제로 VM Box로 llvm build를 실패한 사람들을 위해 window 에서 llvm build / install 하는 방법을 공유한다.
1. Download Source
먼저 LLVM Download Page에서 다운받으려는 버전을 확인하고, 해당 버전의 GitHub Release로 이동한다.
https://releases.llvm.org/download.html
나의 경우 12.0.0 버전의 코드를 사용했다.
https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.0
GitHub Release로 이동하여 Assets를 확인해보면 많은 파일이 존재한다.
LLVM을 빌드하고 사용하기 위해 반드시 필요한 것은 llvm과 clang 이므로 이 두개를 우선적으로 다운받는다.
파일 다운이 완료되면, 압축을 푼다. 7-zip (오픈소스로 배포되고 있는 압축 소프트웨어)를 사용하면 window 환경에서도 쉽게 압축을 해제할 수 있다. 압축을 해제한 폴더 명은 편의상 각각 llvm과 clang으로 변경한다.
llvm 폴더 내부에 tools 폴더가 있는 것을 볼 수 있다. 여기에 clang 폴더를 옮겨준다.
2. Install CMake
아래 링크를 통해 cmake을 설치한다.
나의 경우 cmake-3.23.0-rc3-windows-x86_64.msi 를 사용했다.
3. Install CMake
아래의 경로를 통해 CMake GUI를 실행한다.
- c:\Program Files\CMake\bin\cmake-gui.exe
GUI를 실행하면 다음과 같은 창이 뜨는 것을 볼 수 있다.
실행 절차는 다음과 같다.
1. "Where is the source code" path 설정 : llvm 을 download 받았던 path
2. "Where to build the binaries" path 설정 : CMake 로 만들어질 output file (나의 경우 llvm 폴더 내부에 build 폴더를 생성하여 이곳으로 path를 설정했다.)
3. Configure 버튼 클릭 : configure 버튼을 누르면 가운데 화면에 빨간색 바탕으로 변수들이 나온다. 이 변수들의 설정을 원하는대로 변경하고, Generate 버튼을 누르면 .sln + .proj 파일들이 만들어진다. (나의 경우 default 값으로 설정했다.) 이 때 CLANG_* 변수들이 보인다면, CLANG 에 대한 project 도 같이 만들어진다. 보이지 않는다면, clang source 가 없는 것일 것이므로, clang soure를 추가하도록 한다.
4. CMAKE_INSTALL_PREFIX : LLVM 을 compile 해서 나오는 binary 를 저장할 path 를 지정해 주는 것이다. (나의 경우 default 값으로 설정했다.)
5. Generate 버튼 클릭 : .sln + .proj 파일들을 만들어준다.
4. Open LLVM.sln
VS(visual studio)로 LLVM.sln을 연다. 경로는 다음과 같다.
- c:\a\programming\llvm\llvm\build\LLVM.sln
단계 3에서 각자 설정한 "where to build the binaries" 의 경로를 따라가면 된다.
5. Build
가장 많은 시간이 소요되는 마지막 단계이다.
모든 project 를 build 하려면, "ALL_BUILD" 또는 "INSTALL" 을 Build하면 된다. (나의 경우 "ALL_BUILD"를 build 했다.)
6. Install
기본적으로 아래 경로에 실행파일이 만들어진다.
- <.sln file directory>\Debug\bin
- c:\Program Files (x86)\LLVM
Reference
http://i5on9i.blogspot.com/2017/01/llvm-windows-visual-studio-community.html