在Ubuntu上編譯安裝LLVM

2021-08-14 01:38:08 字數 2694 閱讀 8197

cmake

編譯安裝

檔案鏈結

驗證後記

兩周前實驗室要求我配置乙個叫speedy.js的編譯器,配置這個編譯器需要先配置好llvm。根據這個編譯器作者的教程,亂七八糟配置了一通,踩過一些坑,碰過一些雷,浪費了很多時間。花了兩周時間,終於全套配置完成,因此想寫個教程,留點知識給以後的自己和需要的各位。speedy.js不好說,但是llvm這東西以後有大概率會用的上。

這是我這次配置llvm過程中最大的乙個坑,因為耗費了將近40%的時間。一定不要在windows上配!一定不要在windows上配!一定不要在windows上配!重要的話說三遍。

一般情況下,普通的dos指令在windows下和linux下是一樣,但是差異也是有的,比如,教程裡有一句:

cmake --build . --target install -- -j4
關鍵在於最後的-j4,作者是這麼說的:

the -j4 defines how many processes are used to build llvm. a good

choice is to use the number of cores + 1.

意思就是,這個-j4代表了可以指定多少個程序來執行這個操作,推薦設定為cpu核心數+1。

但是,要命的是,微軟的msbuild編譯器不識別這個子命令,會報以下的錯誤:

之後查了一查,-jx這種子命令是linux系統下的,因此就裝了個vmware,弄了乙個ubuntu的虛擬機器,重配。

git是什麼我就不多說了,自行baidu,首先你需要給自己的虛擬機器或者linux電腦裡安裝git。

首先,開個控制台(terminal),在系統根目錄(home)下,輸入以下命令:

$ apt-get install git
等待一會兒就能自動安裝好。

$ mkdir llvm_temp && cd llvm_temp
然後依次執行下面兩條指令:

$ git clone 

$ cd llvm

然後,再依次執行下面這四句:

$ cd tools

$ git clone

$ cd ..

$ mkdir build && cd build

$ cd cmake-3.10.1
並依次執行以下操作:

$ ./configure

$ make

$ make install

執行完這些操作,cmake這個工具就安裝完了。

此時,在當前的控制台中,回到根目錄,建立乙個llvm資料夾(這個是最後安裝llvm的資料夾),不用進去,然後關掉這個控制台。回到最初的那個控制台,現在應該在build資料夾中,執行下面的指令:

$ cmake -dllvm_targets_to_build=host -dcmake_install_prefix=~/llvm -dcmake_build_type=minsizerel -dllvm_experimental_targets_to_build=webassembly -dllvm_include_examples=off -dllvm_include_tests=off -dclang_include_tests=off ..
注意:上面這段**是一行,中間是空格,不是回車。這個命令實際的功能是編譯llvm原始碼,過程將持續2~4個小時(ssd高玩請忽略)。編譯完成後,執行下面的操作就可以完成安裝了:

cmake --build . --target install -- -j3
這個數字3前面已經提過了,推薦設定為你的cpu核心數+1,我給虛擬機器分配了兩核,所以是3。這個操作是我學習到的乙個額外的點。一般情況下你想執行乙個可執行檔案,就需要用控制台進入到對應的目錄中去,如果想開啟控制台直接在全域性中使用,就需要做檔案鏈結。

起乙個新的控制台,輸入以下命令:

$ ln -s ~/llvm/bin ~/bin
這句指令的作用是將根目錄下的bin目錄和llvm的bin目錄鏈結起來,系統接收到去根目錄下(全域性)找檔案的指令時,就會根據對映去llvm的bin裡面找。

更加詳細的有關於ln指令的知識請移步:

最後一步,驗證一下llvm是否成功編譯,成功安裝。

隨便哪個控制台,在根目錄下執行以下命令:

$ llvm-config --targets-built
如果輸出中包含webassembly這個關鍵字,那麼恭喜你,你機器上的llvm已經編譯、安裝成功!沒有做檔案鏈結這一步的同學,需要進入到llvm的bin目錄中去再執行驗證的指令。

我的郵箱是:[email protected],csdn的部落格我不常登上來看,有問題的同學可以發郵件來問。

在ubuntu上安裝pascal,並編譯執行

安裝sudo apt install fp compiler 乙個簡單的程式 使用命令vi file.pas,將 寫入。program maxnumber input,output var num1,num2,num3,max integer begin read num1,num2,num3 if...

在ubuntu上,原始碼編譯安裝Mplayer

step 1,準備好所有的檔案,如下所示 mplayer 1.0rc2.tar.bz2 mplayer原始檔 blue 1.7.tar.bz2 mplayer 通用解碼器 windows all 20071007.zip mplayer win32解碼器 step 2,編譯環境準備 執行一下命令 a...

在ubuntu上編譯chrome

在ubuntu上編譯chrome 紅心地瓜 1.獲取 2 解壓縮 3 安裝dept tools 將dept tools加到path裡面 export path path pwd depot tools或者加到 bashrc裡面 2.安裝dependency 進到 chromium src目錄下 bu...