zoukankan      html  css  js  c++  java
  • android源码2.3编译—致命错误: bits/predefs.h

    (参考了现有的解决方法,综合把问题解决了)
     

    第一种说法是:GCC版本过高。(http://blog.sina.com.cn/s/blog_4e7453df01012r1d.html)

    例如:

    /usr/include/features.h:323:26: 致命错误:bits/predefs.h:没有那个文件或目录

    编译中断。
    make: ***[out/host/linux-x86/obj/EXECUTABLES/mkbootfs_intermediates/mkbootfs.o]错误 1
    make: *** 正在等待未完成的任务….
    In file included from /usr/include/stdlib.h:25:0,
    from build/tools/acp/acp.c:11:
    /usr/include/features.h:323:26: 致命错误:bits/predefs.h:没有那个文件或目录
    编译中断。

    ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3。


    ubuntu 系统下安装gcc 4.4的方法是用以下两条命令。

    sudo apt-get install gcc-4.4

    sudo apt-get install g++-4.4

    装完后在/usr/bin目录下

    $ ls -l gcc*

    lrwxrwxrwx 1 root root     7 2011-10-29 09:11 gcc ->gcc-4.6

    -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4

    -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6

    这时会发现gcc 链接到gcc-4.6,   需要将它改为链接到gcc-4.4:

    sudo mv gcc gcc.bak

    sudo ln -s gcc-4.4 gcc

    同理

    ls -l g++*

    lrwxrwxrwx 1 root root     7 2011-08-14 15:17 g++ ->g++-4.6

    -rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4

    -rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6

    需要将g++链接改为g++-4.4:

    /usr/bin$ sudo mv g++ g++.bak

    /usr/bin$sudo ln -s g++-4.4 g++

    再查看gcc和g++版本号:
    gcc -v
    g++ -v

    均显示gcc version 4.4.6,现在一切ok。

    然后继续编译,期间可能还发生g++ selected multilib '32' notinstalled的错误,需要:

          sudo apt-get install g++-4.4-multilib


    这样操作之后,我的问题还没有解决,第二步:

    解决方法:
    1. 查询系统是否为x86_64 GNU/Linux
           root@mm-desktop:uname -a
           如果显示如下:
           Linuxmm-desktop 2.6.27-9-generic #1 SMP Thu Nov 20 22:15:32 UTC 2008  x86_64 GNU/Linux
      说明系统是x86_64 GNU/Linux,安装libc6-dev-i386
         sudoapt-get install libc6-dev-i386

    2. 如果是32位系统:sudoapt-get installlibc6-dev

    3. 然后输入sudoapt-get install gcc-multilib即可

  • 相关阅读:
    PAT1066(AVL树)
    判断是对象,还是数组对象
    electron打包成.exe后限制只启动一个应用
    electron启动出现短暂的白屏
    js sort方法根据数组中对象的某一个属性值进行排序
    VUE DIV模拟input框的基本处理
    vue 设置 input 为不可以编辑
    VUE实现限制输入框最多输入15个中文,或者30个英文
    electron 点击事件无效
    electron监听系统托盘,electron是否最小化到系统托盘
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3132320.html
Copyright © 2011-2022 走看看