銀河麒麟V10操作系統編譯LLVM18踩坑記錄

1、簡述

? ? ? ? 要在銀河麒麟V10操作系統上編譯一個LLVM18,這個系統之前確實也沒有用過,所以開始了一系列的摸排工作,進行一下記錄。

? ? ? ? 首先肯定是要搞一個系統,所以去到銀河麒麟的網站,填寫了一個申請

產品試用申請·國產操作系統、麒麟操作系統——麒麟軟件官方網站麒麟軟件是專業從事國產操作系統研發和產業化的高新技術企業,旗下擁有銀河麒麟、中標麒麟、星光麒麟三大國產操作系統品牌,服務國內用戶超過6萬家。icon-default.png?t=N7T8https://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 CMakeicon-default.png?t=N7T8https://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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12599.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12599.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12599.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構--鏈表的基本操作

1. 鏈表的概念及結構 概念:鏈表是?種物理存儲結構上?連續、?順序的存儲結構,數據元素的邏輯順序是通過鏈表 中的指針鏈接次序實現的 。 鏈表也是線性表的一種。 鏈表的結構跟???廂相似,淡季時?次的?廂會相應減少,旺季時…

OpenMesh 最長邊細分算法

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 這是一個很簡單的算法,其特點在于使用“最長邊”(LongestEdge)的某個閾值(T)作為細分的標準,并且這個細分是均勻進行的,即盡量保持各個部分的密度或復雜度相近。 具體的算法描述: 輸入:一個初始的圖形或網…

嵌入式—STC芯片開發板點亮第一盞燈

🎬 秋野醬:《個人主頁》 🔥 個人專欄:《Java專欄》《Python專欄》 ??心若有所向往,何懼道阻且長 文章目錄 一: 原理圖二: 需求實現三:編碼實現四:代碼實現五:編譯燒錄運行 一&…

HTML哆啦A夢

目錄 寫在前面 HTML簡介 完整代碼 代碼分析 系列推薦 寫在最后 寫在前面 誰不想擁有一只可愛的叮當貓呢?本期小編給大家帶來了一個萌萌的哆啦A夢。 HTML簡介 HTML,即超文本標記語言,是構建網頁的基礎技術之一,它是一種標…

JavaEE初階-多線程進階2

文章目錄 前言一、CAS1.1 CAS的概念1.2 原子類1.3 CAS的ABA問題 二、JUC中常用類2.1 Callable接口2.2 ReentrantLock(可重入)2.3 Semaphore信號量2.4 CountDownLatch類2.5 CopyOnWriteArrayList類2.6 ConcurrentHashMap 前言 對于多線程進階的部分&…

Scala學習之 控制結構和函數

目錄 第二章 控制結構和函數1- 條件表達式2- 語句終止3- 塊表達式和賦值4- 輸入和輸出5- 循環6- 高級for循環和for推到式7- 函數8- 默認參數和帶名參數9- 可變參數10- 過程11- 懶值12- 異常end 第二章 控制結構和函數 1- 條件表達式 Scala的 if/esle 語法結構與java一樣, 但是…

C語言例題43、打印倒立金字塔

#include <stdio.h>void main() {int i, j;for (i 5; i > 0; i--) {for (j 5; j > i; j--) {//輸出空格printf(" ");}for (j 2 * i; j > 1; j--) {//輸出星號printf("* ");}printf("\n");} }運行結果&#xff1a; 本章C語言…

用好 explain 媽媽再也不用擔心我的 SQL 慢了

大家好&#xff0c;我是聰&#xff0c;一個樂于分享的小小程序員。在不久之前我寫了一個慢 SQL 分析工具&#xff0c;可以用來分析 Java Mybatis 項目的 SQL 執行情況&#xff0c;其中剛好涉及到了 explain 的使用。感興趣的可以了解一下。 Github 地址?&#xff1a;https://…

【C#】學習獲取程序執行路徑,Gemini 幫助分析

一、前言&#xff1a; 在Delphi中&#xff0c;如果想要獲取當前執行程序的目錄&#xff0c;程序代碼如下&#xff1a; ExtractFilePath(ParamStr(0)); 今天在分析一個別人做的C#程序時看到了一段C#代碼&#xff0c;意思是獲取執行程序所在的文件目錄&#xff1a; public stat…

基于區塊鏈的Web 3.0關鍵技術研討會順利召開

基于區塊鏈的Web3.0關鍵技術研討會 2024年4月23日&#xff0c;由國家區塊鏈技術創新中心主辦的“基于區塊鏈的web3.0關鍵技術研討會”召開。Web3.0被用來描述一個運行在“區塊鏈”技術之上的“去中心化”的互聯網&#xff0c;該網絡上的主體掌握自己數據所有權和使用權&#xf…

【回眸】git VS repo 區別

git VS repo 區別 1. git&#xff1a;Git是一個開源的分布式版本控制系統&#xff0c;用以有效、高速的處理從很小到非常大的項目版本管理。 2. Repo: Repo是谷歌用Python腳本寫的調用git的一個腳本,Repo實現管理多個git庫。 Git 常用命令 1. git init&#xff1a;在當前目…

【原創】java+springboot+mysql企業郵件管理系統設計與實現

個人主頁&#xff1a;程序猿小小楊 個人簡介&#xff1a;從事開發多年&#xff0c;Java、Php、Python、前端開發均有涉獵 博客內容&#xff1a;Java項目實戰、項目演示、技術分享 文末有作者名片&#xff0c;希望和大家一起共同進步&#xff0c;你只管努力&#xff0c;剩下的交…

Vue的學習 —— <vue組件>

目錄 前言 正文 一、選項式API與組合式API 二、生命周期函數 1、onBeforeMount() 2、onMounted() 3、onBeforeUpdate() 4、onUpdated() 5、onBeforeUnmount() 6、onUnmounted() 三、組件之間的樣式沖突 四、父組件向子組件傳遞數據 1、定義props 2、靜態綁定props…

C++青少年簡明教程:賦值語句

C青少年簡明教程&#xff1a;賦值語句 賦值語句是編程中最基本也是最常用的概念之一&#xff0c;它用于將一個值分配給一個變量。 使用等號&#xff08; 稱為賦值運算符&#xff09;來給變量賦值&#xff0c;賦值語句的左邊是要賦值的變量&#xff0c;右邊是要賦給變量的值。C…

Docker 使用 CentOS 鏡像

使用 docker run 直接運行 CentOS 7 鏡像&#xff0c;并登錄 bash。 C:\Users\yhu>docker run -it centos:centos7 bash Unable to find image centos:centos7 locally centos7: Pulling from library/centos 2d473b07cdd5: Pull complete Digest: sha256:be65f488b7764ad36…

GPT-4o:全面深入了解 OpenAI 的 GPT-4o

GPT-4o&#xff1a;全面深入了解 OpenAI 的 GPT-4o 關于 GPT-4o 的所有信息ChatGPT 增強的用戶體驗改進的多語言和音頻功能GPT-4o 優于 Whisper-v3M3Exam 基準測試中的表現 GPT-4o 的起源追蹤語言模型的演變GPT 譜系&#xff1a;人工智能語言的開拓者多模式飛躍&#xff1a;超越…

連接虛擬機的 redis

用Windows 的 Redis Insight 連接虛擬機的 安裝redis發現連不上 我的redis是新安裝&#xff0c;沒有用戶名密碼&#xff0c;發現是ip問題 127 開頭的被我注釋了&#xff0c;換成了ifconfig查到的ip

vim命令大全(基礎版)

創建一個py文件 vim cs.py一、命令模式 按Esc后&#xff0c;按shift&#xff1a;進入命令模式 :wq # 保存并退出 :q # 退出 :q! # 強制退出 :%d # 刪除全部內容按兩下d&#xff0c;刪除光標所在行 按兩下y&#xff0c;復制光標所在行 按一下p&#xff0c;粘貼復制內容到下…

Android性能:SurfaceFlinger與BufferQueue(3)

Android性能&#xff1a;SurfaceFlinger與BufferQueue&#xff08;3&#xff09; Android顯示系統的組成可以概括為兩大部分&#xff1a;繪制(DrawFrame)合成&#xff08;SurfaceFlinger HWC&#xff09; 繪制&#xff1a;Surface中空的 GraphicBuffer->CPU或者GPU通過Canv…

Python GUI開發- Qt Designer環境搭建

前言 Qt Designer是PyQt5 程序UI界面的實現工具&#xff0c;使用 Qt Designer 可以拖拽、點擊完成GUI界面設計&#xff0c;并且設計完成的 .ui 程序可以轉換成 .py 文件供 python 程序調用 環境準備 使用pip安裝 pip install pyqt5-toolsQt Designer 環境搭建 在pip安裝包…