條件:64bit win7下VMware安裝ubuntu-12.04 編譯android4.0源碼html
no.1
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: 沒有那個文件或目錄
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: 沒有那個文件或目錄
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: 沒有那個文件或目錄
/bin/bash: bison: 未找到命令java
http://blog.sina.com.cn/s/blog_4e7453df01012r51.html
直接輸入命令sudo apt-get install lsb-core能解決python
no.2
sudo apt-get update
sudo apt-get -y install git-core
sudo apt-get -y install gnupg
sudo apt-get -y install sun-java6-jdk flex
sudo apt-get -y install bison
sudo apt-get -y install gperf
sudo apt-get -y install libsdl-dev
sudo apt-get -y install libesd0-dev
sudo apt-get -y install libwxgtk2.6-dev
sudo apt-get -y install build-essential
sudo apt-get -y install zip
sudo apt-get -y install curl
sudo apt-get -y install libncurses5-dev
sudo apt-get -y install zlib1g-dev
sudo apt-get -y install valgrindlinux
vmware安裝ubuntu12.04(64)編譯android4.0源碼產生的錯誤及解決方法android
no.3
.usr/include/features.h:324:26: 致命錯誤: bits/predefs.h:沒有那個文件或目錄
編譯中斷。git
問題都是因爲gcc版本是4.6.1,版本過高,編譯android時出錯,要把gcc版本改成4.4.3。ubuntu
廢話很少說了,直接寫解決方法吧;bash
ubuntu 系統下安裝gcc 4.4的方法是僅用如下兩條命令。python2.7
sudo apt-get install gcc-4.4curl
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
http://blog.csdn.net/suwenqiang_2011/article/details/7765934
no.4
.In file included from /usr/include/stdlib.h:25,
from build/tools/acp/acp.c:11:
/usr/include/features.h:324: fatal error: bits/predefs.h: 沒有那個文件或目錄
輸入sudo apt-get install gcc-multilib 便可
http://code.google.com/p/gmlive/issues/detail?id=52
no.5
.make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] 錯誤 1
解決:sudo apt-get install g++-multilib
http://www.360doc.com/content/12/0602/16/6828497_215429231.shtml
no.6
g++: selected multilib '32' not installed
sudo apt-get install g++-4.4-multilib
http://www.linuxidc.com/Linux/2011-11/47642.htm
no.7
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] 錯誤 1
sudo apt-get install lib32z1-dev
http://zhidao.baidu.com/link?url=MMpPuUlStBj2IG2IMjg2PdyBEjxDg5UqA_JuGJ48XQMT1WDYLfoDfdkgT4NC_3GS9a2gvu2oNT_OC7PD_Fbcfq
no.8
.make: *** [out/target/common/docs/doc-comment-check-timestamp] 錯誤 45
解決方法:須要作個連接以下:
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/jar /bin/jar
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/java /bin/java
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/javac /bin/javac
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/javah /bin/javah
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/javadoc /bin/javadoc
這個解決方法和網上大多數的不同。網上不少針對這個問題的,都是在android2.3源代碼遇到的,須要修改4個文件,而這4個文件,在android4.0源代碼中,根本沒有。
http://www.linuxidc.com/Linux/2013-04/82816.htm
no.9
.make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 錯誤 1
sudo apt-get install lib32ncurses5-dev
http://www.myexception.cn/android/1456297.html
no.10
make: *** [out/host/linux-x86/obj/lib/libOpenglRender.so] 錯誤 1
host StaticLib: libOpenglCodecCommon (out/host/linux-x86/obj/STATIC_LIBRARIES/libOpenglCodecCommon_intermediates/libOpenglCodecCommon.a)
host SharedLib: libOpenglRender (out/host/linux-x86/obj/lib/libOpenglRender.so)
/usr/bin/ld: cannot find -lX11
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libOpenglRender.so] 錯誤 1
首先安裝這兩個庫文件的32位版本:
$ sudo apt-get install libx11-dev:i386(libX11.so)
$ sudo apt-get install libgl1-mesa-glx:i386 (libGL.so)
因爲libGL.so系統默認沒有進行庫路徑下的連接,還須要手動連接一下
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
http://lostghoul.blog.163.com/blog/static/111721999201344637339/
no.11
.make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] 錯誤 1
no.10已解決
http://lostghoul.blog.163.com/blog/static/111721999201344637339/
no.12
.target Generated: libbcc <= frameworks/compile/libbcc/tools/gen-build-stamp.py
Traceback (most recent call last):
File "frameworks/compile/libbcc/tools/gen-build-stamp.py", line 143, in <module>
main()
File "frameworks/compile/libbcc/tools/gen-build-stamp.py", line 96, in main
build_rev = get_repo_revision(repo_dir)
File "frameworks/compile/libbcc/tools/gen-build-stamp.py", line 24, in get_repo_revision
cwd=repo_dir)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libbcc_intermediates/libbcc-stamp.c] 錯誤 1
make: *** 正在刪除文件「out/target/product/generic/obj/SHARED_LIBRARIES/libbcc_intermediates/libbcc-stamp.c」
sudo apt-get install git-core
http://blog.163.com/fj_ltls/blog/static/138027111201171553832752/
no.13
.collect2: ld returned 1 exit status
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libbcc_intermediates/LINKED/libbcc.so] 錯誤
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
解決方法:apt-get install lib32z1-dev
ps:
第一次編譯:解壓後直接在根目錄下make,報一堆錯誤,no.1-no.13(排除no.2,no.2不是錯誤,是操做),百度谷歌找解決方案,卡在看no.13,網上的方案都解決不了,本身沒有能力解決,只能放棄。
第二次編譯:擴大ubuntu的分配空間,從新安裝。在報no.1錯誤後執行no.2,並預先將先前遇到的各類問題解決方法走一遍,編譯成功,耗時20小時?(晚上待機狀態不肯定是否繼續編譯)