Android ndk 为Android构建V8时找不到sys/cdefs.h

Android ndk 为Android构建V8时找不到sys/cdefs.h,android-ndk,g++,v8,Android Ndk,G++,V8,我正在尝试为Android构建V8(通过): 但是,最后一个命令失败: make[1]: Entering directory `/home/bart/Desktop/v8' make[2]: Entering directory `/home/bart/Desktop/v8/out' AR(target) /home/bart/Desktop/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.arm.a CXX(hos

我正在尝试为Android构建V8(通过):

但是,最后一个命令失败:

make[1]: Entering directory `/home/bart/Desktop/v8'
make[2]: Entering directory `/home/bart/Desktop/v8/out'
  AR(target) /home/bart/Desktop/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.arm.a
  CXX(host) /home/bart/Desktop/v8/out/android_arm.release/obj.host/v8_base.arm/src/accessors.o
In file included from /usr/include/stdio.h:27:0,
                 from ../src/../include/v8stdint.h:11,
                 from ../src/../include/v8.h:18,
                 from ../src/v8.h:29,
                 from ../src/accessors.cc:5:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>
                         ^
compilation terminated.
make[2]: *** [/home/bart/Desktop/v8/out/android_arm.release/obj.host/v8_base.arm/src/accessors.o] Error 1
make[2]: Leaving directory `/home/bart/Desktop/v8/out'
make[1]: *** [android_arm.release] Error 2
make[1]: Leaving directory `/home/bart/Desktop/v8'
make: *** [android_arm.release] Error 2
make[1]:进入目录“/home/bart/Desktop/v8”
make[2]:输入目录“/home/bart/Desktop/v8/out”
AR(target)/home/bart/Desktop/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.arm.a
CXX(主机)/home/bart/Desktop/v8/out/android_arm.release/obj.host/v8_base.arm/src/accessors.o
在/usr/include/stdio.h:27:0中包含的文件中,
from../src/./include/v8stdint.h:11,
from../src/./include/v8.h:18,
自../src/v8.h:29,
从../src/accessors.cc:5:
/usr/include/features.h:374:25:致命错误:sys/cdefs.h:没有这样的文件或目录
#包括
^
编译终止。
make[2]:***[/home/bart/Desktop/v8/out/android_arm.release/obj.host/v8_base.arm/src/accessors.o]错误1
make[2]:离开目录“/home/bart/Desktop/v8/out”
make[1]:***[android_arm.release]错误2
make[1]:离开目录“/home/bart/Desktop/v8”
make:**[android_arm.release]错误2
缺少的文件,sys/cdefs.h。存在于NDK/platforms/*/arch arm/usr/include中,但编译器显然找不到它。我漏了一步吗

更新:仔细检查后,编译器似乎正在从我的主机系统(即Linux)读取/usr/include/features.h。这似乎不合适,所以是的,我是否遗漏了一个应该将流程指向NDK/platforms/*/arch arm的步骤


我正在使用NDK 9d(Linux x86_64)

经过进一步挖掘,我发现V8的构建过程既有目标步骤,也有主机步骤。我只需在主机系统上安装丢失的文件(
apt get install libc6-dev-i386 g++-multilib
),然后编译成功


现在,我仍然不明白为什么需要主机上的任何东西,但我还是会接受这一胜利。

在Ubuntu 14.04 i686上不起作用。 尝试
apt-get-install-gcc-multilib

make[1]: Entering directory `/home/bart/Desktop/v8'
make[2]: Entering directory `/home/bart/Desktop/v8/out'
  AR(target) /home/bart/Desktop/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.arm.a
  CXX(host) /home/bart/Desktop/v8/out/android_arm.release/obj.host/v8_base.arm/src/accessors.o
In file included from /usr/include/stdio.h:27:0,
                 from ../src/../include/v8stdint.h:11,
                 from ../src/../include/v8.h:18,
                 from ../src/v8.h:29,
                 from ../src/accessors.cc:5:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>
                         ^
compilation terminated.
make[2]: *** [/home/bart/Desktop/v8/out/android_arm.release/obj.host/v8_base.arm/src/accessors.o] Error 1
make[2]: Leaving directory `/home/bart/Desktop/v8/out'
make[1]: *** [android_arm.release] Error 2
make[1]: Leaving directory `/home/bart/Desktop/v8'
make: *** [android_arm.release] Error 2