1. 程式人生 > >安裝LLVM+Clang教程

安裝LLVM+Clang教程

目錄

前言

前言

最近可能要學習編譯器相關的知識,因此總結一下LLVM的安裝方法,以防忘記如何安裝。

接下來就是正式的安裝過程了。。。

------------------------------------------------------------分割線---------------------------------------------------------------------------------------------------

一、LLVM簡介

LLVM是Low Level Virtual Machine 的縮寫,它源自於伊利諾伊大學的一個開源研究專案,旨在提供一種現代化的編譯機制,使得對於任何的語言既可以做到靜態編譯也可以動態編譯,並且非常高效。後來LLVM孵化了很多的子專案,例如:Clang,LLDB,OpenMP等。

靜態編譯:編譯器在編譯可執行檔案時,把需要用到的對應動態連結庫(.so或.ilb)中的部分提取出來,連結到可執行檔案中                    去,使可執行檔案在執行時不需要依賴於動態連結庫

動態編譯:動態編譯的可執行檔案需要附帶一個的動態連結庫,在執行時,需要呼叫其對應動態連結庫中的命令。所以其                     優點一方面是縮小了執行檔案本身的體積,另一方面是加快了編譯速度,節省了系統資源。缺點一是哪怕是很                     簡單的程式,只用到了連結庫中的一兩條命令,也需要附帶一個相對龐大的連結庫;二是如果其他計算機上沒                     有安裝對應的執行庫,則用動態編譯的可執行檔案就不能執行。

LLVM由三部分組成:

第一部分是LLVM套件,它包含有LLVM所需的所有工具、庫函式、和標頭檔案,彙編器、反彙編器、bitcode(一種中間程式碼)分析器和優化器,以用來測試LLVM和Clang前端的基本回歸測試。

第二部分是Clang前端,它將C/C++,Object C和Object C++程式碼編譯成LLVM的中間程式碼(bitcode),一旦編譯成LLVM bitcode,就可以使用LLVM的套件中的LLVM工具來進行操作了。

第三部分是測試集合,這是一個可選部分。它是一套能用來進一步測試LLVM功能和效能的程式。

二、LLVM+Clang的安裝

準備工作

LLVM官方是用svn進行版本控制的,因此我們需要安裝svn來獲取原始碼。

安裝過程中會用到cmake工具來生成Makefile,需要先安裝cmake。

sudo apt-get install subversion
sudo apt-get install cmake

構建安裝目錄

#建立一個目錄用來存放llvm原始碼
mkdir /tmp/llvm_source_build

下載LLVM核心原始碼

#下載llvm程式碼
cd /tmp/llvm_source_build
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

此時在/tmp/llvm_source_build目錄下就會有一個llvm目錄。

下載Clang原始碼

在/tmp/llvm_source_bulid/llvm/tools目錄下下載clang。

#下載Clang原始碼
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang

下載 Clang 工具原始碼(可選)

cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra

下載Compiler-RT 原始碼(可選)

cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt

還有一系列的可選項可以下載安裝,這些並不主要,若需要可以檢視參考文獻2。

配置和安裝LLVM+Clang

首先返回到/tmp/llvm_source_build目錄下,新建一個build目錄。

#新建build目錄
cd /tmp/llvm_source_build
mkdir build

使用之前安裝的cmake得到Makefile檔案

cd /build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_INSTALL_PREFIX=/opt/llvm ../llvm

上面的-CMAKE_INSTALL_PREDIX=/opt/llvm 表示要安裝的目錄。

得到Makefiile檔案之後幾可以進行編譯和安裝了

make -j 8
sudo make install

最後還需要配置一下環境變數。

#配置一下環境變數
vim /etc/profile
#在末尾新增
export PATH=$PATH:/opt/llvm/bin

參考文獻: