2017-10-09 63 views
3

我正在从MAC地址为doc的AOSP(Android开源项目)构建AOSP,一切正常,尽管存在一些我可以谷歌解决的问题。Mac非法指令:4

当我执行make,我得到了一个错误:

Yacc: aidl <= frameworks/base/tools/aidl/aidl_language_y.y

prebuilts/misc/darwin-x86/bison/bison -d -o out/host/darwin-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y

make: *** [out/host/darwin-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Illegal instruction: 4

我用Google搜索了太多,我试图安装bison但它不为我工作。

环境:

Mac SDK : 10.11 
Mac OS : 10.13 
Android : 6.0.1 
JDK  : 1.7 
XCode : 8.3 
make : 3.81 

谁能帮助我?提前致谢。

UPDATE

我也试图降级XCode到7.3.1,但它不仍然工作。

更新兼容性

file prebuilts/misc/darwin-x86/bison/bison
输出:prebuilts/misc/darwin-x86/bison/bison: Mach-O executable i386

uname -a
输出:root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64

+0

显然,一些则说这是4'的非法指令。你看过'aidl_language_y.cpp'文件吗?它看起来像是由bison生成的C++解析器吗?如果将此文件移出构建树并尝试再次“make”,会发生什么情况? –

+0

你的意思是删除文件并重新生成? @RenaudPacalet – CoXier

+0

不,不要删除文件(你永远不知道)。只要将它移到其他地方并尝试再次制作即可。如果需要,您会将其移回。 –

回答

1

我有同样的问题。野牛可执行文件被打破,所以我安装野牛与自制:

brew install bison 

然后

sudo find/-name bison 

这给了我的路径野牛安装:在/ usr/bin中/野牛我删除了野牛文件来自AOSP:

sudo rm /Volumes/android/prebuilts/misc/darwin-x86/bison/bison 

(卷/ android /是我的工作目录,带有aosp的目录)。 然后,我创建了一个符号链接与自制安装了野牛:

sudo ln -s /usr/bin/bison /Volumes/android/prebuilts/misc/darwin-x86/bison/bison 
+0

然后它的工作原理您? – CoXier

+0

是............ – 2017-11-29 19:33:17