導航:首頁 > 源碼編譯 > 編譯llvm硬碟

編譯llvm硬碟

發布時間:2023-05-30 20:08:25

⑴ RHEL linux下llvm的安裝。安裝出現的錯誤如下,怎麼解決或者知道怎麼編譯,教一下。

缺少關聯的文件。

needed by `lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o'.

⑵ windows 7 x64用cmake,mingw32安裝LLVM,編譯時報錯MemoryBuffer.cpp:381:25: error

Microsoft Visual Studio--common--MSDev98--Bin—MSDEV.EXE,通過此路徑找到MSDEV.EXE可執行文件(或者右擊桌面VC圖標,選擇打開文件位置)。
右鍵--屬性--常規,將MSDEV.EXE更名為MSDEV1.EXE(其它名稱也行,如MSDEV2.EXE).
右鍵--屬性--兼容性,兼容模式選擇Windows XP(service pack2)"或者WindowsXP(service pack3).許可權等級勾選為「以管理員身份運行此程序」,點擊確定。
重新運行VC6.0,應該可以完美運行(如果第一次報錯,那麼關閉,重新打開應該就可以了)。

⑶ LLVM - 工具

LLVM工具通過調用LLVM的一部分庫,實現庫的功能,通常使用編譯器或者開發編譯器的人會用到這些工具。

這是一個在LLVM IR級別做程序優化的工具,輸入和輸出都是LLVM IR。編譯器,或者基於LLVM做優化的開發者通常會使用這一標准工具來查看優化的效果。它也提供了很多option, 可以執行某一特定的pass。

這是微觀意義上的LLVM編譯器,不同於gcc的編譯器,它的輸入是LLVM IR,輸出是匯編文件或者是目標文件。通過-filetype=asm或者-filetype=obj來指定輸出是匯編文件還是目標文件,若生成是目標文件,llc會調用LLVM中的匯編輸出的代碼庫來工作(注意這個匯編器和gcc的匯編器也不同,它輸入的是MI,是一種後端的中間表示)。除陸稿此之外,還可以用-On來指定優化級別(llc默認優化級別是-O2),或者其他一些參數。

(.bc文件換成.ll文件也可以)

這是LLVM匯編器,它早春孝輸入匯編文件,輸出目標文件, 類似於gnu中的as命令。同時,它也可以反匯編,指定特殊參數(–disassemble)就行。可以發現,llc和llvm-mc都會調用到輸出目標文件的庫,也就是MCObjectStreamer。

這個工具是LLVM IR的解釋器,也是一個JIT編譯器。LLVM可以把C語言翻譯成LLVM IR,然後解釋執行,與Java的那一套類似,這也是最初LLVM編寫時的實現(一個虛擬機運行IR)。

最早看到這個工具,以為是鏈接器,其實它是IR級別的鏈接器,鏈接的是IR文件。談到這里,可以說一下LLVM針對多個源文件編譯時的兩種目標碼輸出方式。

第一種是LLVM先通森困過前端把每個源文件單獨翻譯成IR級別,然後用llvm-link鏈接成一個IR,然後再經過優化、後端等步驟生成目標文件,使用llvm-link的同時,可以使用鏈接時優化。不過需要注意,這種方式同樣需要最終調用鏈接器,將這個目標文件鏈接成可執行文件。

第二種是LLVM通過前端把每個源文件單獨翻譯後,再單獨經過優化、後端等工作,將每個源文件生成目標文件,之後再調用鏈接器,將所有目標文件鏈接成可執行文件。

這是針對LLVM IR的匯編器,其實名字里帶as,實際上不是gcc那個as,它的功能是將.ll文件翻譯為.bc文件,LLVM項目里,.ll稱為LLVM匯編碼,所以llvm-as也就是IR的匯編器了。

與llvm-as剛好相反,IR的反匯編器,用來將.bc文件翻譯為.ll文件。

最後也提一下clang,它也是現在LLVM項目中一個很重要的前端工具。clang能夠調用整個編譯器的流程,也就是上邊其他工具調用的庫,它很多都同樣會調用。clang通過指定-emit-llvm參數,可以配合-S或-c生成.ll或.bc文件,這樣我們就能把Clang的部分和LLVM的後端分離開來獨立運行,對於觀察編譯器流程來說,很實用。

還有一些其他工具,就不舉例了,可以查看LLVM項目路徑下/src/tools/中查看。

⑷ llvm 利用g++編譯程序,此程序inclue了llvm的一些頭文件。編譯時出現 undefined reference to錯誤

你是要編譯llvm和你自己在llvm上做的工程?llvm能用gnu工具鏈編譯的,你的配置有問題,編譯,鏈接腳本的順序有問題。這跟是不是第三方庫沒關系

⑸ llvm編譯makefile152錯誤

llvm編譯makefile152錯誤解決辦法如下
由於該文件不是很必須的文件,所以可以嘗試touch該文件
嘗試安裝libclang-common-9-dev。

⑹ 編譯llvm和clang需要多大空間

:轉自知乎 藍色 我最近和Clang/LLVM打交道比較多,目前游離在LLVM IR和IBM WCode之間。對於學習Clang/LLVM來說,其實需要看你做什麼,是研究C, C++, Objective-C在Clang的實現,抑或著是想利用Clang做AST層面的事情,還是說想要利用LLVM IR來做

⑺ 如何使用ninja快速編譯LLVM和Clang

1,Build llvm/clang/lldb/lld 3.5.0等組件

1.0 准備:

至少需要從llvm.org下載llvm, cfe, lldb, compiler-rt,lld等3.5.0版本的代碼。

$tar xf llvm-3.5.0.src.tar.gz

$cd llvm-3.5.0.src

$mkdir -p tools/clang
$mkdir -p tools/clang/tools/extra
$mkdir -p tools/lld
$mkdir -p projects/compiler-rt

$tar xf cfe-3.5.0.src.tar.xz -C tools/clang --strip-components=1
$tar xf compiler-rt-3.5.0.src.tar.xz -C projects/compiler-rt --strip-components=1
$tar xf lldb-3.5.0.src.tar.xz -C tools/clang/tools/extra --strip-components=1
$tar xf lld-3.5.0.src.tar.xz -C tools/lld --strip-components=1
1.1 【可選】使用clang --stdlib=libc++時,自動添加-lc++abi。

libc++組件可以使用gcc libstdc++的supc++ ABI,也可以使用c++abi,cxxrt等,實際上自動添加-lc++abi是不必要的,這里這么處理,主要是為了方便起見。實際上完全可以在「clang++ -stdlib=libc++」時再手工添加-lc++abi給鏈接器。

這里涉及到鏈接時DSO隱式還是顯式的問題,早些時候ld在鏈接庫時會自動引入由庫引入的依賴動態庫,後來因為這個行為的不可控性,所以ld鏈接器的行為做了修改,需要顯式的寫明所有需要鏈接的動態庫,才會有手工添加-lc++abi這種情況出現。

⑻ llvm怎樣將中間代碼編譯為可執行二進制文件

預編譯。編譯器將你的.c、.cpp源代碼,通過解釋其中的預編譯指令,將源代碼轉換成相應的沒有任何預編譯指令的代碼。

編譯、優化。將上一步的代碼編譯成匯編指令,並作一定優化,形成對應的.s匯編代碼
匯編。將.s文件匯編成機器碼,形成對應的.o目標文件,此時是不可執行的二進制文件。生成對應的清單文件。為了連接需要,還會生成未定向符號表、導出符號表、地址重定向表等等。
連接。先根據對應的清單文件、連接文件及之間的調用關系,決定所有的目標文件及引用的庫文件在最後可執行文件中的位置;然後做一些其他事情,比如根據符號表等將目標文件中的符號地址補全等等;最終得到可執行文件。
這只是我個人的簡單理解,更詳盡的解答都可以寫成好幾本書了=_=望採納~

⑼ 如何利用LLVM寫一個編譯器

書籍請參考編譯原理的龍書,以及flex,bison,llvm的manual。
如何寫我可以給你一個大致的流程,
編譯器由詞法分析器->語法分析器->中間代碼生成器->後端組成。
用C語言寫編譯器一般可以按照以下步驟:
1.使用flex生成詞法分析器。(flex可以通過自己編寫的描述文件來自動生成詞法分析器)
2.使用bison生成語法分析器。(bison可以通過自己編寫的描述文件來自動生成語法分析器)
3.通過語法分析器得到輸入代碼的語法樹表示。
4.編寫遍歷函數遍歷語法樹生成中間代碼。(這里推薦使用LLVM的中間代碼表示)
5.利用LLVM工具集來編譯執行所得到的中間代碼。

⑽ centos64位中編譯llvm源碼時編譯了很久很久都還沒結束是怎麼回事

如果沒死掉還在正常編譯的話,一般是因為你的機器性能差

閱讀全文

與編譯llvm硬碟相關的資料

熱點內容
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:14
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:45
免費打擊墊app哪個好 瀏覽:532
程序員必裝的6款軟體 瀏覽:750
基於單片機的遙控器設計 瀏覽:521
安卓如何取消圓圖標 瀏覽:11
收件伺服器怎麼樣 瀏覽:48
建築設計規范pdf 瀏覽:98
如何合並兩個pdf 瀏覽:174
刷機包必須要解壓的單詞 瀏覽:483
android課表實現 瀏覽:864
頭條app在哪裡能看見有什麼活動 瀏覽:511
冰櫃壓縮機電容80歐 瀏覽:609
安卓各個版本圖標什麼樣 瀏覽:152
無錫哪裡有製作手機app 瀏覽:538
php字元串轉json數組 瀏覽:6
數控網路編程課程有哪些 瀏覽:482