編譯android4.0錯誤總結

條件: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小時?(晚上待機狀態不肯定是否繼續編譯)

相關文章
相關標籤/搜索