LLVM+Clang 安裝測試

一 簡介

        最近的一些活動需要接觸clang來實現對程序的分析,特地來了解下clang的工作原理以及相應的數據生成。

        本文在虛擬機上進行安裝,物理機:win7,虛擬機:ubuntu 18.04(VBox,採用的中科大的源)

        參考博客:安裝LLVM+Clang教程

二 開始

        1 sudo apt-get install subversion

          #LLVM官方是用svn進行版本控制的,因此我們需要安裝svn來獲取源碼。安裝過程中會用到cmake工具來生成Makefile,需要先安裝cmake。

         2 sudo apt-get install cmake

         3 sudo apt install gcc

            sudo apt install g++

         4 mkdir /tmp/llvm_source_build #構建安裝目錄

   5 cd /tmp/llvm_source_build

    svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm   #下載LLVM核心代碼

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

             報錯:svn: E000104: 執行上下文錯誤: 連接被對方重設

             嘗試各種方法,但是都無法解決這個錯誤,只能從官方llvm網址上下載,建議採用XDown下載器下載(快)

             下載之後,複製到/tmp/llvm_source_build目錄下,並解壓,如下圖:

        5 同樣的方式完成cfe(也就是clang)、clang-tools-extra、compiler-rt,libcxx,libcxxabi等模塊,但是要注意的是,要將各個模塊放入對應的文件夾中才行,否則後續會出現錯誤,同時版本最好一致。

        6 在/tmp/llvm_source_build下新建build文件夾,準備安裝llvm+clang

        7 下面的-CMAKE_INSTALL_PREDIX=/opt/llvm 表示要安裝的目錄

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

        然而,若報錯以下問題:

          解決方法:參考https://stackoverflow.com/questions/53278637/ubuntu-18-04-no-cmake-c-compiler-could-be-found發現並沒有安裝g++,然後安裝了g++,再運行cmake命令,完成安裝。因此在安裝初步,建議先更新工具鏈博客(前面已經補充):

sudo apt install gcc
sudo apt install g++

    8  進行安裝,-j 8 是選擇核心數,根據自己的需要來改,這步驟需要時間很長,可以先去睡覺了

make 
sudo make install

       然而還是報錯了

       解決方法:1 collect2: ld terminated with signal 9這個錯誤是由於交換區swap空間太小而引起的,解決方案參考博客或者博客2,注意,需要su權限纔行。

passwd#設置新的密碼

su
sudo mkdir swapfile
cd swapfile
sudo dd if=/dev/zero of=swap bs=1024 count=16000000
chmod 0600 swap
sudo mkswap -f  swap
sudo swapon swap # 打開
sudo swapoff swap # 卸載
可以通過 free -h來查看交換區的大小

     然後進行make,sudo make install

           9 設置環境變量

#配置一下環境變量
vim /etc/profile
#在末尾添加
export PATH=$PATH:/opt/llvm/bin

           10 reboot 並驗證

至此,安裝部分已經完成了,下期博客介紹怎麼玩這個東西

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章