ubuntu 虛擬機環境下 安裝 配置 Clang/LLVM

ubuntu 虛擬機環境下 安裝 配置 Clang/LLVM

前言

我的是ubuntu 16.04 64bit系統,其它版本的系統,應該是一樣的。

重點:

LLVM非常耗內存,LLVM非常耗內存,LLVM非常耗內存,實測需要10G左右內存,沒有這個內存,肯定需要一些其他方法來進行相關處理!!!!


step 0 為大內存編譯/鏈接做準備

1.為虛擬機至少預留100G硬碟存儲

2.將ld鏈接器,修改為gold鏈接器

cd /usr/bin

rm ld

cp -d gold ld

主要原因是因為LLVM是C++編寫的大型軟體,在link的時候,非常耗內存!

將ld改為gold,能有效降低內存使用量

3.swap交換區

因為內存不夠,所以只能swap交換區來湊。

1. 由於創建交換區用到的部分命令需要較高許可權,先獲取 root 許可權:usrname@ubuntu:~$ sudo -i。退出 root 時只需要鍵入 exit 即可回到用戶許可權。 2. 創建 8GB 的空文件: dd if=/dev/zero of=/tmp/swap1 bs=1M count=8192; 3. 把 /tmp/swap1 格式化為交換分區:mkswap /tmp/swap1; 4. 使用 free 命令查看交換分區大小: free 5. 掛載交換分區:swapon /tmp/swap1;如果要去掉新增加的 swap 分區,使用「swapoff /tmp/swap1」即可。

建議

swap分區大小+memory內存大小總和 > 10GB

如果內存大小不夠,make的時候,會兒出現各種莫名其妙的錯誤。


step1 首先是安裝環境的準備

sudo apt install subversionsudo apt install cmake

有些版本的LLVM對cmake的版本有最低要求,按照相關要求進行處理就行了。


step2 下載源碼

下載源碼的方式很多,隨便選一種就行了,下面以5.0版本為例。

建立如下目錄形式的目錄

/home/user/llvm --sourcecode --build --installcd sourcecode

下載相關源代碼:

svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final llvmcd llvm/toolssvn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_500/final clang

如果需要使用C++11,需要下載相關的庫

cd llvm/projectssvn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_500/final libcxxsvn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_500/final libcxxabi

其它的相關組件,根據自己需要,進行下載


step3 cmake源碼

cd buildcmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../install ../sourcecode/llvm

-G選項,用於生成相關的makefile,具體情況請man一下

DCMAKE_BUILD_TYPE=Debug,用於生成Debug版本的安裝包

DCMAKE_BUILD_TYPE=Release,用於生成Release版本的安裝包,如果用這個選項,則4G的內存夠也!!!!

DCMAKE_INSTALL_PREFIX=../install ,將LLVM安裝到的目錄


step 4 make&make install

make

時間大概是18小時,不要急,慢慢等。

make install


step 5將clang和相關庫加入PATH路徑和共享庫路徑中

cd ~vim ./bashrcexport PATH=$PATH:~/llvm/install/binexport LD_LIBRARY_PATH=~/llvm/install/lib


step 6 測試是否安裝成功

clang --versionclang++ --versionvim xxx.cvim xxx.cppclang xxx.cclang++ xxx.cpp


OK,安裝成功,接下來就可以修改LLVM源碼,看看編譯器能出啥效果了。


主要參考文獻:

1.手把手教你在Ubuntu下安裝clang和libc++

2.Ubuntu 虛擬機環境下配置 Clang/LLVM - CSDN博客


下一步的動作,請移步以下鏈接:

robbertl:安裝LLVM後的開發環境的搭建?

zhuanlan.zhihu.com圖標
推薦閱讀:

C++: std::bind – Tutorial and Examples
學習筆記之JIT編譯過程
windows下安裝,配置gcc編譯器
淺談編譯代碼時用的居中方法
機器學習與編譯優化的入門介紹

TAG:編譯 | 編譯器 | LLVM |