Mac編譯android源碼出現bison Abort trap: 6錯誤

首先感謝MAC編譯Android源碼 prebuilts/misc/darwin-x86/bison/bison出錯這篇博客的博主,他的方法解決了我的問題,雖然出的問題不太相同,但是bison出問題時都可以試試這個解決方案。

1. 定位問題

在編譯過程中出現下方問題,一開始上網查以爲是bison、yacc的安裝問題,用which bison/which yacc檢查都安裝過了,這就很費解了,爲什麼會出現這個問題呢?

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] Abort trap: 6
#### make failed to build some targets (04:08 (mm:ss)) ####

後來經過各種查找,定位到是bison出了問題,在使用命令prebuilts/misc/darwin-x86/bison/bison --version時,輸出Abort trap: 6
也就是說,當前預編譯目錄下的bison,有問題。不知道是不是系統的問題,目前我的系統版本是macOS High Sierra 10.13.6。

2. 解決方案

既然預編譯出的bison有問題,那麼就把他替換掉就好了啊!
首先,使用如下命令刪掉原本使用的bison。

rm prebuilts/misc/darwin-x86/bison/bison

之後,建立系統內bison到該目錄的軟鏈接。

sudo ln -s /usr/local/Cellar/bison/<bison_version>/bin/bison /<source_code_root_dir>/prebuilts/misc/darwin-x86/bison/bison

之後使用上面的命令prebuilts/misc/darwin-x86/bison/bison --version試一下,如果輸出正常,那麼bison應該不會出問題了

bison (GNU Bison) 3.1
Written by Robert Corbett and Richard Stallman.
Copyright © 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

之後重新進行編譯,看到make completed successfully!!!太激動人心了,之前這個問題卡了很久,在這記錄一下,也希望可以幫到更多的人~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章