Linux系统glibc(GNU C Library)从零安装步骤

要研究一下glibc相关的东西,当然得先知道咋安装。

目录

源码clone

编译和安装

配置configure

编译并安装


源码clone

首先,得把源码弄下来,直接去官网看看咋弄就行了:The GNU C Libraryhttps://www.gnu.org/software/libc/sources.html

克隆到本地,check进去就行,但注意要去stable版本,不要直接去master。

编译和安装

我当时安装的时候是2.34版本,写这篇的时候已经是2.35了,但都差不多。

clone下来的仓库的根目录有一个文件叫INSTALL,里面有如何编译的详解,但全是英文。想仔细了解的就直接去看那个文件,基本可以明白安装的步骤和一些原理。不想看大段英文,而且想简单粗暴安装的,可以继续往下读我这篇。

配置configure

和很多软件的安装类似,得先运行一个脚本叫configure,可以根据用户需求或喜好配置一下。

为了能保留一个完整的源码,不让编译的时候把它破坏了,很多软件(包括这个glibc)都希望你新开一个目录,专门负责存放编译时候生成的文件。这样即使除了什么问题,源码的这个目录也是纹丝未变,方便排除问题后重新开始。

glibc为了完全保护源码干净,在configure脚本中加入了判断。如果configure就在目前的工作目录(cwd)里,那么它不能被执行。也就是说,必须cd到一个别的目录,才能执行这个目录里的configure。因此永远也不可能“./configure”,而是只能“./some_directory_path/configure”。

如果你./configure了,会报error: you must configure in a separate build directory。

[@localhost glibc-2.34]$ ./configure 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for readelf... readelf
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ can link programs... no
configure: error: you must configure in a separate build directory

在我们的编译过程中,可以选择在glibc源码目录(clone下来一般叫glibc-2.xx)的上一层目录里建一个build目录,用来装编译生成的文件。

此时就准备“../glibc-2.xx/configure”了。但注意,此时build目录里最好不要有任何文件,不然可能会影响编译

具体怎么配置呢?可以很复杂,但也可以很简单,就用一个选项--prefix就行了,这是选定你要安装在哪个目录。默认是--prefix=/usr/local,你要只是想随便安装一下,就改改这个选项,以防不小心把系统破坏了。

执行吧:

[@localhost glibc-2.34]$ cd ../build-glibc/
[@localhost build-glibc]$ ../glibc-2.34/configure --prefix=/mydir

编译并安装

啥也不用管,直接make就行了,-j加快点速度也行。

[@localhost build-glibc]$ make

编译完了就安装,这时候已经不用再选安装到哪个目录了,configure的时候选过了,而且如果这个目录不存在也是会帮你创建的。直接安装:

[@localhost build-glibc]$ make install

都跑完了就大功告成!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值