一、编译需求
我使用的是64位Slitaz的linux系统(中文),glibc的版本只有2.14.1,运行teamviewer时要求glibc 2.17,就开始了艰难的更新之路。
一开始,尝试了将其他Linux系统带的glibc库文件复制入Slitaz 64,各种报错。最后,我算是明白了,glibc不仅仅是libc.so.6 这一个文件,还有一堆文件。
二、编译前的环境
这个64位,只是内核为64位,能访问4GB以上的内存,图形界面和库都是32位的。
三、编译的程序包
要注意二点:
1、4.linux-api-headers,是slitaz系统相关的头文件,如果其他的linux,包文件名可能会不同。
2、bash-5.0,如果不装,不会在 configure命令时有报错,但是编译一半时,就会出现错误,导致编译不能进行。这个经验的价值非常高,一般都查不出来。
四、开始编译
1、解压glicb-2.20.tar.bz2压缩包,进入解压后的目录。
2、mkdir build
3、cd build
4、最关键的配置命令,生成32位的glibc库
../configure --prefix=/usr --build=i686-linux --host=i686-linux
下面是打好命令后的输出
checking build system type... i686-pc-linux-gnu
checking host system type... i686-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 g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking for readelf... readelf
checking for sysdeps preconfigure fragments... aarch64 alpha arm hppa i386 m68k microblaze mips powerpc s390 sh sparc tile x86_64
configure: running configure fragment for add-on libidn
checking for assembler and linker STT_GNU_IFUNC support... yes
checking whether .text pseudo-op must be used..