银河麒麟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.mzph.cn/diannao/12599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构--链表的基本操作

1. 链表的概念及结构 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表也是线性表的一种。 链表的结构跟⽕⻋⻋厢相似,淡季时⻋次的⻋厢会相应减少,旺季时…

嵌入式—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 前言 对于多线程进阶的部分&…

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

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安装包…

基于SVPWM的飞轮控制系统的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于SVPWM的飞轮控制系统的simulink建模与仿真。SVPWM的核心思想是将逆变器输出的三相电压矢量在两相静止坐标系&#xff08;αβ坐标系&#xff09;中表示&#xff0c;通过控…

Node.js安装及环境配置(超详细!保姆级!!)

目录 一、进入官网地址下载安装包 二、安装程序 三、环境配置 四、测试 五、安装淘宝镜像 一、进入官网地址下载安装包 Node.js — Download Node.js (nodejs.org) 选择对应你系统的 node.js 版本&#xff0c;我选择的是Windows系统&#xff0c;64位 点击图中选项&#…

无人机+应急通信:灾害现场应急通信车技术详解

无人机和应急通信车是灾害现场应急通信中的重要技术。无人机可以通过快速到达灾害现场&#xff0c;搭载高清摄像头、红外热成像仪、激光雷达等设备&#xff0c;对灾区进行实时监测和灾情评估&#xff0c;同时也可以通过搭载的通信设备&#xff0c;与指挥中心进行实时通信和数据…