1、簡述
? ? ? ? 要在銀河麒麟V10操作系統上編譯一個LLVM18,這個系統之前確實也沒有用過,所以開始了一系列的摸排工作,進行一下記錄。
? ? ? ? 首先肯定是要搞一個系統,所以去到銀河麒麟的網站,填寫了一個申請
產品試用申請·國產操作系統、麒麟操作系統——麒麟軟件官方網站麒麟軟件是專業從事國產操作系統研發和產業化的高新技術企業,旗下擁有銀河麒麟、中標麒麟、星光麒麟三大國產操作系統品牌,服務國內用戶超過6萬家。https://www.kylinos.cn/support/trial.html?trial=356519? ? ? ? 然后跳到下載界面,發現了若干版本的,最后選擇了兆芯版,因為是x86_64的,要編譯的軟件也是主要支持這個,另外也沒有別的cpu架構的設備。
? ? ? ? 安裝過程倒也沒有什么特別的,使用Hyper-V 管理器安裝的虛擬機,和其它的虛擬機安裝也差別不大。
? ? ? ? 安裝流程可以參考下面的鏈接。
Hyper-V安裝centos8時遇到的一些問題整理_hyper-v the signed image's hash is not allowed-CSDN博客文章瀏覽閱讀367次,點贊5次,收藏3次。有三種說法,一是說虛擬機上啟用了安全啟動,可以找到關閉它,我自己的狀況就是啟用安全啟動了,關閉就好了。另外的說法是BOSS 卡固件或驅動程序已過時或與虛擬機不兼容。建議您更新BOSS卡固件或驅動程序。第三個可能原因是P2V轉換工具(就像Disk2VHD)沒有正確或完整地捕獲BOSS卡。_hyper-v the signed image's hash is not allowedhttps://skydance.blog.csdn.net/article/details/138509730
2、編譯LLVM
? ? ? ? 虛擬機已經搞完了,那就開始編譯軟件了,首先要下載軟件,所以要開始配置git,感覺git協議的比https協議的連接要更穩定,所以配置賬號、郵箱、密鑰什么的。
? ? ? ? 配置完成,然后下載源碼LLVM的源碼。
git clone --depth 1 git@github.com:llvm/llvm-project.git
? ? ? ? 源碼下載完成。
(1)問題1:CXX變量為空
? ? ? ? 運行命令開始cmake。
? ? ? ? 首先進入源碼目錄,mkdir build,創建build文件夾。
cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Debug
????????結果說找不到CXX環境變量,于是看了一下gcc版本,發現是7.3,這倒也沒問題,但是沒有g++,那么就安裝一下吧。
? ? ? ? 最后發現是這個名稱了,以前應該就是g++
yum install gcc-c++
? ? ? ? 安裝完,查看版本也是7.3,然后設置一個臨時的環境變量
????????export CXX=/usr/bin/g++
????????ok那繼續。
(2)問題2:cmake版本低
????????提示下面這樣的問題,那就是版本低了。
CMake 3.20.0 or higher is required.? You are running version 3.16.5
? ? ? ? 然后查看了一下yum源的版本,已經是最新的了,然后就想那就自己下載一個編譯一下吧。
Download CMakehttps://cmake.org/download/#previous? ? ? ? 到官網找了一個最新版本的tar.gz弄到本地,然后一路操作,發現版本更新了。
# 解壓
tar -xvzf cmake-3.26.5.tar.gz# 進入文件夾
cd cmake-3.26.5# 給予完全權限,防止出現不可執行的情況
chmod 777 ./configure#然后運行
./configure# 成功會顯示如下字樣
//Cmake has bootstrapped. Now run make.# 然后運行
make# 然后安裝
sudo make install# 查看新版本
cmake --version
(3)問題3:GCC版本低
? ? ? ? 剛才搞完cmake,然后重新在運行,發現說GCC版本低,源里面沒有更新的版本了,我去他@##$&^&@#@。然后呢,想了想,這個各種版本低,一個一個編譯啥時候是頭。
? ? ? ? 研究研究怎么修改源吧,被我在別人的博客里找到了。
? ? ? ? 首先備份原來的源,在/etc/yum.repos.d/文件夾下面,手動或者自動備份一下就行
? ? ? ? 然后下載新的源,說是麒麟是基于centos的,不過不是說8不繼續支持了嗎?
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
? ? ? ? 清理緩存并重建
yum clean all && yum makecache
? ? ? ? 查看可用的軟件版本
yum list available | grep gcc
? ? ? ? 發現一個源上gcc有8.5的,那么就更新一下吧
yum update gcc
? ? ? ? 同意安裝,相關的軟件都更新了。
(4)暫時編譯可以進行了
? ? ? ? 然后清理一下運行cmake產生的問題,就是刪除build里面的內容。
? ? ? ? 然后繼續下面的命令
cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Debug
? ? ? ? 一頓輸出,然后沒有說有啥錯誤,build下面該生成的也都生成了。
? ? ? ? 然后運行下面的命令
cmake --build build
? ? ? ? 然后開始等待,還沒有完成,就暫時記錄到這里,如果繼續有問題,就接著這里記流水賬。
3、相關參考
LLVM編譯安裝_llvm18 編譯安裝-CSDN博客
Getting Started with the LLVM System — LLVM 19.0.0git documentation
https://www.jianshu.com/p/598b7094b8c1
?配置centos8的源
https://www.cnblogs.com/zhang-xiao-shuang/p/18067889
安裝docker
銀河麒麟高級服務器操作系統V10下載安裝及安裝docker_銀河麒麟v10鏡像iso下載-CSDN博客
?編譯gcc
https://www.cnblogs.com/tothk/p/16441498.html