zoukankan      html  css  js  c++  java
  • Ubuntu 8.10 编译 Android2.3.4

    编译时遇到些问题,这里记录下来,方便回顾:

    1、arm-eabi-4.4.3

    prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc -mthumb-interwork -Ibionic/libc/private -o out/target/product/generic/obj/lib/crtbegin_dynamic.o -c bionic/libc/arch-arm/bionic/crtbegin_dynamic.S
    
    prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11′ not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)
    
    make: *** [out/target/product/generic/obj/lib/crtbegin_dynamic.o] 错误 1
    

    这个编译错误是因为在32位Ubuntu上编译引起的交叉编译器问题,需要降低使用的版本,使用4.4.0来进行编译;

    解决方法

          进入android源码目录中 /prebuild/linux-x86/toolchain/,里面包含了几个版本的交叉编译器arm-eabi-4.x.x,这里直接正在使用的arm-eabi-4.4.3备份,比如重命名成arm-eabi-4.4.3-old,然后新建一个arm-eabi-4.4.3文件夹,并将arm-eabi-4.4.0里的内容copy一份到新建的arm-eabi-4.4.3中,这样就起到了欺骗的效果,实际使用的就是4.4.0;

    2、GCC

    target thumb C: liba2dp <= external/bluetooth/bluez/audio/../sbc/sbc_primitives_neon.c external/bluetooth/bluez/audio/../sbc/sbc_primitives_neon.c: In function 'sbc_calc_scalefactors_j_neon': external/bluetooth/bluez/audio/../sbc/sbc_primitives_neon.c:309: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' external/bluetooth/bluez/audio/../sbc/sbc_primitives_neon.c:309: error: 'asm' operand has impossible constraints make: *** [out/target/product/galaxys/obj/SHARED_LIBRARIES/liba2dp_intermediates/../sbc/sbc_primitives_neon.o] Error 1
    

     

    Ubuntu 8.10上自带的gcc版本是4.3.2,在编译2.3时会出现上面的'GENERAL_REGS’错误,这是由于这个版本的gcc存在一个bug,所以对gcc进行升级即可,

    解决方法

      apt-get install gcc

    如果这时候,你还是无法编译通过,那么建议你换高版本的系统试试,比如换到ubuntu 10.10上,

    建议装个双系统,使用ubuntu提供的wubi工具,直接装十分的方便~

    3、G++

    换到10.10 编译时,居然又抽风出现,gcc: error trying to exec 'cc1plus': execvp: 没有那个文件或目录的错误

    找不到cc1plus,说明G++与GCC之间存在问题,很有可能是正在使用的两者版本不一样导致

    cd /usr/bin
    ls -l gcc*
    lrwxrwxrwx 1 root root 7 2011-10-20 16:38 gcc -> gcc-4.4
    -rwxr-xr-x 2 root root 212168 2010-09-10 17:16 gcc-4.3
    -rwxr-xr-x 1 root root 224488 2010-09-28 02:43 gcc-4.4
    -rwxr-xr-x 1 root root 232912 2010-09-28 05:03 gcc-4.5

    ls -l g++*
    lrwxrwxrwx 1 root root 7 2011-10-20 16:36 g++ -> g++-4.3
    -rwxr-xr-x 2 root root 212104 2010-09-10 17:15 g++-4.3
    -rwxr-xr-x 1 root root 228520 2010-09-28 02:42 g++-4.4

    果然版本不一,修改成一样的即可

    rm g++

    ln -s g++-4.4 g++ //将g++重定向到4.4的版本



            

  • 相关阅读:
    负载均衡(负载平衡)
    JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
    有趣的浏览器检测
    IE6 bug之 href= “javascript:void(0);”
    SVN使用技巧 不要把不必要的文件版本化 *.suo,*.bin,*.obj
    CacheDependency缓存依赖里面的 absoluteExpiration(绝对到期时间),弹性到期时间(slidingExpiration)
    TimeSpan 和 DateTime
    字符串数组 string[] 转换为 字符串(用逗号,作为分隔符),linq Except的用法,linq获取两个字符串数组相同的部分
    List的ToLookup 分组方法
    mysql 返回查询结果,返回out返回值,多表联合查询的分页存储过程
  • 原文地址:https://www.cnblogs.com/flyme/p/2217665.html
Copyright © 2011-2022 走看看