ubuntu13.04下载 编译android 4.0 (二) 内涵常见错误

来源:互联网 发布:吃播催吐知乎 编辑:程序博客网 时间:2024/06/05 20:06

这里是编译部分 

我的系统是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.



0 0
原创粉丝点击