最近反复搭建android2.3编译环境,采用CyanogenMod for Samsung Captivate。在我Manual Initial Build一阶段时,出错:prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/libc.so.6: version `GLIBC_2.11' not found
google了很久,大海中找到了答案:
cd prebuilt/linux-x86/toolchain/
mv arm-eabi-4.4.3 arm-eabi-4.4.3.flc
ln -s arm-eabi-4.4.0 arm-eabi-4.4.3
注:这个目录是在项目的根目录。
详细请参考:http://crancho.com/wiki/CyanogenMod_for_Samsung_Captivate#Errors_.2F_Solutions
但是,等我编译时候,出错,有人告诉我prebuilt/linux-x86/toolchain/里面的东西是不能随便乱改的,那段错误是没有glibc的原因,好吧,我天真了。那什么是glibc呢?百科之:glibc是gnu发布的libc库,也即c运行库。glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本 身也提供了许多其它一些必要功能服务的实现。
现看看我的电脑上libc库的版本吧:
command:ls /lib/libc-*
/lib/libc-2.10.1.so看出我的电脑的libc是2.10.1,而编译环境要求的是2.11的,那就安装最新的glibc即可。
command:emerge glibc