這裏是編譯部分
我的系統是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系統默認沒有進行庫路徑下的鏈接,還需要手動鏈接一下
共勉
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.