Fedora16下载编译android源码4.0

            google不断的升级android, 主流的操作系统也在不断的升级,32到64位,版本1.0到2.0,到3.0......, 其实这背后也是这些软件供应商在不断的角力, 在这个迭代的年代,却苦了程序员。最近把Fedora升级到 16, 64bit系统,编译android ICS源码。过程中会遇到不少问题,先总结如下:

           1. 先需要配置安装JDK, 务必下载安装JDK1.6版本,否者编译会遇到意向不到的问题,还是需要按照google官方文档会省不少力气,可惜google官方文档是基于Ubantu

           2. 按照官方文档开始编译

               # cd android_src

               # . build/setenv.sh

               #lunch

               #make

            3. 编译错误解决

               3.1 glibc 32库

                 In file included from /usr/include/features.h:387:0,
                 from /usr/include/stdlib.h:25,
                 from build/tools/acp/acp.c:11:
                 /usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录

                 #yum install glibc-devel.i686

               3.2  缺少32位的zlib库

                host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
                /usr/bin/ld: skipping incompatible /usr/lib64/libz.so when searching for -lz
                /usr/bin/ld: cannot find -lz
                collect2: ld 返回 1

                #yum install zlib.i686 zlib-devel.i686
               

              host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
              host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
              /usr/bin/ld: skipping incompatible /usr/lib64/libtinfo.so when searching for -ltinfo
              /usr/bin/ld: cannot find -ltinfo
              collect2: ld 返回 1


             #yum install ncurses-devel.i686 ncurses-libs.i686

            host SharedLib: libOpenglRender (out/host/linux-x86/obj/lib/libOpenglRender.so)
            /usr/bin/ld: skipping incompatible /usr/lib64/libX11.so when searching for -lX11
            /usr/bin/ld: cannot find -lX11
            /usr/bin/ld: skipping incompatible /usr/lib64/libX11.so when searching for -lX11
            /usr/bin/ld: cannot find -lX11
           collect2: ld 返回 1
           make: *** [out/host/linux-x86/obj/lib/libOpenglRender.so] 错误 1

          #yum install libX11.i686 libX11-devel.i686

          host StaticLib: libGLcommon (out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/libGLcommon.a)
          host SharedLib: libGLES_CM_translator (out/host/linux-x86/obj/lib/libGLES_CM_translator.so)
          /usr/bin/ld: skipping incompatible /usr/lib64/libGL.so when searching for -lGL
         /usr/bin/ld: cannot find -lGL
         collect2: ld 返回 1
         make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] 错误 1



         #yum install libgle.i686 libgle-devel.i686
         #yum install libGLEW.i686 libGLEWmx.i686
         #ln -sf /usr/lib/libGL.so.1.2 /usr/lib/libGL.so


      
        sh: gperf: 未找到命令
        calling gperf failed: 32512 at ./makeprop.pl line 140.
        make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/css/CSSPropertyNames.h] 错误 25
        make: *** 正在删除文件“out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/css/CSSPropertyNames.h”

        target Generated: libwebcore <= external/webkit/Source/WebCore/html/DocTypeStrings.gperf
        Can't locate Switch.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5  /usr/share/perl5 .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
         BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.


        #yum search perl|grep switch
        #yum install perl-Switch.noarch
        原因是fedora16缺省安装的perf-5.14拿掉了switch.pm模块,所以需要重新安装一下

        顺利打完,收工,分析原因在64bit系统中编译android, 部分代码需要32位的一些库支持,才能顺利编译,因为目标平台现在arm都是32bit.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值