[컴][컴파일러] LLVM 을 Windows Visual Studio Community 2015에서 build






LLVM 을 Windows Visual Studio Community 2015에서 build

여기 내용은 ref. 1의 내용을 직접 해보면서 정리한 내용이다. 정확한 내용은 ref. 1을 보자.

여기서 ref. 1 과 다른 부분은      을 이용해서 표시했다.

LLVM 을 구성하는 3가지 project

  1. LLVM Suite : 다음 것들을 포함한다.
    1. assembler, 
    2. disassembler, 
    3. bitcode analyzer, 
    4. bitcode optimizer
    5. basic regression tests : CLang 과 LLVM tools 의 테스트에 사용할 수 있다.
    6. LLVM 을 사용하는 데 필요한 tools / libraries/ header files
  2. CLang : C, C++, Object-C, Object C++ 의 소스코드를 CLang 이 compile 해서 LLVM bitcode 를 만들어 준다.
  3. Test Suite : Windows 에서 실행되지 않는다.

directory 구조 / tool chain 등에 대한 추가적인 정보는 ref. 2 에서 알 수 있다.


필요 조건

  • Visual Studio 2015 가 구동될 수 있는 system.
  • 대략 3GB 이상의 HDD :  The LLVM source tree +  object files + libraries + executables 
  • Visual Studio 2015 버전 이상의 Visual Studio : 여기선 Visual Studio 2015 Community 를 사용할 것이다.
  • CMake build system : 아래 "CMake 설치" 참조
  • LLVM test 를 실행하기 위해서 python 2.7 이상이 필요
  • GnuWin32 tools
  • LLVM source tree 의 path 에는 space 가 있으면 안된다.


소스 받기

svn 으로 되어 있다. svn 을 설치하기 귀찮은 관계로 여기서는 git 을 이용한다.
c:\a\programming\llvm> git clone http://llvm.org/git/llvm.git
c:\a\programming\llvm> cd tools
c:\a\programming\llvm\tools> git clone http://llvm.org/git/clang.git
  • 소스를 받는데에만 약 95분정도가 소요됐다.(llvm source : 60분 / clang source : 35분)
  • 빠르게 하려면 한번에 받아서 unzip 하는 것이 나을 듯 하다.




Visual Studio 2015 실행

Visual C++ toolchain 이 필요해서 미리 한번 실행해서 tool chain 을 설치해야 한다.
12시 51분에 시작






CMake 설치

https://cmake.org/download/ 에서 download 하면 된다. 여기서는
  • cmake-3.7.1-win64-x64.msi
를 사용했다.


CMake 실행

이제 CMake GUI를 실행해 보자.

  • c:\Program Files\CMake\bin\cmake-gui.exe

절차

  1. Where is the source code : llvm 을 download 받았던 path, 즉, .git 이 있는 그 folder 를 지정해 준다.
  2. Where to build the binaries : 이것은 CMake 로 만들어질 output file 이 어디에 두느냐 이다. 여기서는 binary 를 만드는 것은 아니고, sln file 등을 만들어준다.

    불확실하지만, path 는 llvm source root 안으로 잡아야 한다. 외부로 잡았었는데, *GenRegisterInfo 가 include 되는 곳에서 error 가 발생했다.(그런데 뭔가 필자의 설정 문제 같기도 해서 잘 모르겠다.)
  3. Configure : configure 버튼을 누르면 가운데 화면에 빨간색 바탕으로 변수들이 나온다. 이 변수들의 설정을 원하는대로 변경하고, Generate 버튼을 누르면 .sln + .proj 파일들이 만들어진다. ref. 1 의 이야기로는 default 값으로 generate 해도 별 문제 없다고 한다.

    이 때 CLANG_* 변수들이 보인다면, CLANG 에 대한 project 도 같이 만들어진다. 보이지 않는다면, clang source 가 없는 것일 것이다.
  4. CMAKE_INSTALL_PREFIX : 이 값은 LLVM 을 compile 해서 나오는 binary 를 저장할 path 를 지정해 주는 것이다. default 는 그림과 같다.
  5. Generate : 이것을 누르면 .sln + .proj 파일들을 만들어준다.




clang source 없이 llvm source 만 설정했을 때

clang source 를 추가했을 때


LLVM.sln

이제 LLVM.sln 을 열자. "where to build the binaries" 를 "c:\a\programming\llvm\llvm\build\" 로 설정했다면 아래 경로에 LLVM.sln 이 있다.
  • c:\a\programming\llvm\llvm\build\LLVM.sln


Build

모든 project 를 build 하려면, "ALL_BUILD" 또는 "INSTALL" 을 Build하면 된다.

참고로, clang source 는 llvm 을 이용하기 때문에 2개의 source 가 같은 시점이어야 한다. 내 경우는 llvm 만 먼저 설치후에 나중에 며칠 지나서 clang source 를 받아서 build 했는데, 그랬더니 struct 등이 맞지 않아서 error 가 많이 났다.

INSTALL 은 ALL_BUILD 를 실행하고, libs, header 등도 같이 CMAKE_INSTALL_PREFIX 폴더에 copy 해 준다.



compile 시간

  • CPU : i3-2100 CPU@3.10GHz
  • RAM : 8GB
  • DISK : SATA3(6Gb/s), 7200RPM, 16MB
  • compile 시간 : 
    • 약 65분(CLang 을 제외한 경우), 
    • CLang 을 포함하면 최소 2시간정도



INSTALL

기본적으로 아래 경로에 실행파일이 만들어진다.
  • <.sln file directory>\Debug\bin
만약 install 을 실행한 경우라면, 위의 path 에서 만들어진 binary file 들은 CMAKE_INSTALL_PREFIX 에 정의한 path 로 복사된다.
  • c:\Program Files (x86)\LLVM




See Also

  1. Clang Tutorial Part I: Introduction | Bits, Bytes, Boos


References

  1. Getting Started with the LLVM System using Microsoft Visual Studio — LLVM 4.0 documentation
  2. Getting Started with the LLVM System — LLVM 4.0 documentation



댓글 없음:

댓글 쓰기