ubuntu13.04下載 編譯android 4.0 (二) 內涵常見錯誤

這裏是編譯部分 

我的系統是ubuntu 13.04 64bit



未完待續


編譯碰到了各式各樣的問題 我這裏給出一些鏈接 都是我碰到問題的時候參看的


鏈接居然沒粘帖,,悲劇,。,。

frameworks/base/include/utils/KeyedVector.h:193:31: 附註: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/CrunchCache.o] 錯誤 1
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/Command.o] 錯誤 1


第一個問題 解決方式是對gcc 和g++ 降級 降級建議最後一步做,因爲有些新安裝可能會卸載gcc & g++

1、首先安裝gcc4.4和g++4.4

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4

gcc和g++的降級gcc降級:

sudo rm -rf /usr/bin/gcc

sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc

gcc -v

g++降級

sudo rm -rf /usr/bin/g++

sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++

g++ -v


這裏會碰到由2個GCC 與G++ 



host Executable: cmu2nuance (out/host/linux-x86/obj/EXECUTABLES/cmu2nuance_intermediates/cmu2nuance)
        /usr/bin/ld: cannot find -lncurses
        collect2: ld returned 1 exit status 
        make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
        make: *** Waiting for unfinished jobs....
        host Executable: coverage (out/host/linux-x86/obj/EXECUTABLES/coverage_intermediates/coverage)

這個問題我也碰到了 安裝後解決

        安裝libncurses5-dev:i386可以解決

        sudo apt-get install libncurses5-dev:i386


dalvik/vm/native/dalvik_system_Zygote.cpp: In function ‘int setrlimitsFromArray(ArrayObject*)’:dalvik/vm/native/dalvik_system_Zygote.cpp:199:19: error: aggregate ‘setrlimitsFromArray(ArrayObject*)::rlimit rlim’ has incomplete type and cannot be defined     struct rlimit rlim;

dalvik/vm/native/dalvik_system_Zygote.cpp:222:43: error: ‘setrlimit’ was not declared in this scope         err = setrlimit(contents[0], &rlim);

make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1make: *** Waiting for unfinished jobs....

所以,這個問題只能修改源代碼來解決

dalvik/vm/native/dalvik_system_Zygote.cpp中間增加一個頭文件定義#include <sys/resource.h>


#include "Dalvik.h"

#include "native/InternalNativePriv.h"

#include <sys/resource.h>


android(4.0)編譯錯誤:usr/bin/ld: cannot find libncurses.so.5 cannot find -lGL

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


共勉



host C: acp <= build/tools/acp/acp.c
host C: libhost <= build/libs/host/CopyFile.c
/bin/bash: cc: 未找到命令
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o] 錯誤 127
make: *** 正在等待未完成的任務....
host C++: aapt <= frameworks/base/tools/aapt/CrunchCache.cpp
/bin/bash: cc: 未找到命令
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 錯誤 127
host C++: aapt <= frameworks/base/tools/aapt/FileFinder.cpp
yangfan@yangfan-pc:~/wkAndroid$ sudo apt-get install libc6-dev-i386

sudo apt-get install build-essential

Error:

frameworks/base/include/utils/KeyedVector.h:193:31: note: declarations in dependent base ‘android::KeyedVector<android::String8, android::sp<AaptDir> >’ are not found by unqualified lookup

frameworks/base/include/utils/KeyedVector.h:193:31: note: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/AaptAssets.o] Error 1

Fix:
vi frameworks/base/tools/aapt/Android.mk

Add '-fpermissive' to line 31:
LOCAL_CFLAGS += -Wno-format-y2k -fpermissive

Error:

frameworks/base/include/utils/KeyedVector.h:193:31: note: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/AssetManager.o] Error 1

Fix:
vi frameworks/base/libs/utils/Android.mk

Add '-fpermissive' to line 64:
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive



Error:

target thumb C: libc <= bionic/libc/unistd/sysconf.c
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libfst_intermediates/fst.o] 錯誤 1


external/srec/tools/thirdparty/OpenFst/fst/lib/cache.h:136:11: note: use ‘this->SetState’ instead
make: *** [out/host/linux-x86/obj/EXECUTABLES/grxmlcompile_intermediates/grxmlcompile.o] Error 1

Fix:
cd external/srec
wget "https://github.com/CyanogenMod/android_external_srec/commit/4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff"
patch -p1 < 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
rm -f 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
cd ../..

  一. make: *** [out/host/linux-x86/obj/EXECUTABLES/emugen_intermediates/main.o] 錯誤 1

       或者 make: *** [out/host/linux-x86/obj/EXECUTABLES/emugen_intermediates/main.o] error 1

        解決辦法: 需要在 

development/tools/emulator/opengl/host/tools/emugen/main.cpp

            在聲明中增加一條頭文件聲明

            #include <getopt.h>


frameworks/base/include/utils/KeyedVector.h:193:31: note: use ‘this->indexOfKey’ insteadmake: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libOpenglCodecCommon_intermediates/GLSharedGroup.o] Error 1

Fix:
vi development/tools/emulator/opengl/Android.mk

Add '-fpermissive' to line 25:
EMUGL_COMMON_CFLAGS := -DWITH_GLES2 -fpermissive



a,一個問題是有一處少了一個頭文件,原因是zlib1g-dev有個頭文件修改了路徑,及zconf.h放到了/usr/include/x86_64-linux-gnu/,所以將其拷貝到/usr/include/下即可了

In file included from system/extras/ext4_utils/output_file.c:30:

/usr/include/zlib.h:34: fatal error: zconf.h: 沒有那個文件或目錄
compilation terminated.



發佈了22 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章