linux下的源码编译
源码编译
把这篇参考文章linux下源代码的编译安装入门完整看并动手实践下来,对源码编译就有了宏观上粗略的了解。
另外还需要了解多级目录下makefile的编写及编译过程。
三步走
configure - 检查
1 | configure --prefix=dir/ |
1 | configure --help |
make - 编译
除了有些用perl或python编写的软件(使用perl或python进行编译),大部分源代码都是需要通过make进行编译的
make是linux开发套件里面自动化编译的一个控制程序,它通过makefile里的编译规则自动调用gcc,ld等进行编译。makefile可以自行编写,也可以通过configure脚本根据给定的参数和系统环境生成。
make install - 安装
make通过加’参数’
make install
或make uninstall
来进行安装或卸载,若不加’参数’则表示进行默认的源代码编译
默认情况下,通常需要root权限来运行make install
,因为待写入目录可能权限较高(如/usr/local/bin)。
对部分软件而言,需要在make install
前先运行make check
或make test
来进行一些测试。
编译qemu
下载qemu源码
1 | wget https://download.qemu.org/qemu-5.2.0.tar.xz |
安装ninja
1 | sudo apt install re2c |
编译qemu
1 | sudo apt install pkg-config libglib2.0-dev libmount-dev python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential autoconf automake libfreetype6-dev libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev libmp3lame-dev libopus-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev |
离线编译安装gcc-5.4.0
1、下载gcc版本:gcc网址
2、解压到本地,新建build目录,执行configure。此时会报错,因为依赖条件不满足,从报错中获取GMP,MPFR和MPC的版本,然后分别安装。
1 | tar zxvf gcc-5.4.0.tar.gz |
报错信息:
1 | configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. |
3、安装依赖
http://ftp.gnu.org/gnu/,该目录下有GMP,MPFR和MPC目录,分别进入下载需要的版本。(按顺序安装哦)
3.1 安装GMP
1 | $ tar -jxvf gmp-4.3.2.tar.gz |
3.2 安装MPFR
1 | $ tar -zxvf mpfr-3.0.0.tar.gz |
3.3 安装MPC
1 | $ tar -zxvf mpc-1.0.2.tar.gz |
3.4 添加库路径到/etc/ld.so.conf中
1 | vim /etc/ld.so.conf |
4 安装gcc
第2步中已经解压完毕,进入build目录
1 | ../configure --prefix=/usr/local/gcc-5.4.0 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-3.0.0 --with-mpc=/usr/local/mpc-1.0.2 |