qemu-8.1.0 源码编译安装

qemu-8.1.0 源码编译安装

操作系统版本

CentOS Linux release 7.9.2009 (Core) 3.10.0-1160.el7.x86_64

依赖版本要求

Python >= 3.7

GCC >= v7.4

yum安装依赖

yum -y install bzip2 glib2 glib2-devel pixman pixman-devel flex bison

安装Python-3.9.0

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel

复制代码
wget http://npm.taobao.org/mirrors/python/3.9.0/Python-3.9.0.tgz
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0
./configure --prefix=/usr/local/python3
make && make install

ln -s /usr/local/python39/bin/python3 /usr/bin/python3
ln -s /usr/local/python39/bin/pip3 /usr/bin/pip3

rm -rf /usr/bin/python
ln -s /usr/local/python39/bin/python3 /usr/bin/python

rm -rf /usr/bin/pip
ln -s /usr/local/python39/bin/pip3 /usr/bin/pip

yum必须使用python2,需要修改yum配置
vim /usr/bin/yum

把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vim /usr/libexec/urlgrabber-ext-down

把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vim /usr/bin/yum-config-manager

#!/usr/bin/python 改为 #!/usr/bin/python2

安装Ninja

yum -y install re2c git

复制代码
git clone git://github.com/ninja-build/ninja.git && cd ninja
./configure.py --bootstrap
cp ninja /usr/bin/
ninja --version

升级gcc版本

复制代码
cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo <<'EOF'
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/rh/
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

yum -y install devtoolset-11-gcc*

每个版本下面都会有个enable文件,执行以下命令即可启用

复制代码
cd /opt/rh/devtoolset-11/
scl enable devtoolset-11 bash
source ./enable

永久生效

复制代码
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++

查看版本是正确
gcc --version
g++ --version

安装qemu

qemu下载地址
https://www.qemu.org/download/#source

复制代码
tar xvJf qemu-8.1.0.tar.xz
cd qemu-8.1.0
./configure
make

执行make后,时间比较

相关错误提示

Using './build' as the directory for build output

WARNING: unrecognized host CPU, proceeding with 'uname -m' output 'x86_64'

ERROR: Cannot use '/usr/bin/python', Python >= 3.7 is required.

Use --python=/path/to/python to specify a supported Python.

Maybe try:

openSUSE Leap 15.3+: zypper install python39

CentOS 8: dnf install python38

ERROR: Cannot find Ninja

ERROR: Program 'bzip2' not found or not executable

ERROR: Problem encountered: You either need GCC v7.4 or Clang v10.0 (or XCode Clang v12.0) to compile QEMU

ERROR: Dependency "glib-2.0" not found, tried pkgconfig

ERROR: Dependency "pixman-1" not found, tried pkgconfig

ERROR: Program 'flex' not found or not executable

相关推荐
书生执笔画浮沉6 分钟前
rpmrebuild
linux·centos·rpm
乌托邦的逃亡者1 小时前
Dockerfile的配置和使用
linux·运维·docker·容器
小此方2 小时前
Re:Linux系统篇(三)指令篇 · 二:十二个高频指令精讲+重定向操作+“一切皆文件“深入理解
linux·运维·服务器
十五年专注C++开发2 小时前
MobaXterm:Windows 远程工作全能工具箱
linux·windows·mobaxterm
wohehe2 小时前
Android项目工程化-Github Actions
linux·github
REDcker3 小时前
Linux disown命令详解 后台作业脱管与终端退出
linux·运维·chrome
cyber_两只龙宝3 小时前
【Oracle】Oracle之SQL的转换函数和条件表达式
linux·运维·数据库·sql·云原生·oracle
努力努力再努力wz3 小时前
【Linux网络系列】深入理解 I/O 多路复用:从 select 痛点到 poll 高并发服务器落地,基于 Poll、智能指针与非阻塞 I/O与线程池手写一个高性能 HTTP 服务器!(附源码)
java·linux·运维·服务器·c语言·c++·python
努力努力再努力wz3 小时前
【Linux网络系列】万字硬核解析网络层核心:IP协议到IP 分片重组、NAT技术及 RIP/OSPF 动态路由全景
java·linux·运维·服务器·数据结构·c++·python
.千余3 小时前
【Linux】基本指令2
linux·运维·服务器