第一种说法是: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
$ 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
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 -vg++ -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即可