编译Android源码(错误列表)

进入源码的根目录,输入命令 make

在编译过程中,遇到了很多问题,下面为一些具体错误,以及对应的解决方法

实际错误出现的顺序和下面的顺序基本一致

1、/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 没有那个文件或目录
/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 没有那个文件或目录

解决方法:

sudo apt-get install lsb-core

2、/bin/bash: bison: command not found

解决方法:

sudo apt-get install bison

3、/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory

解决方法:

sudo apt-get install lib32ncurses5-dev
sudo apt-get install libc6-dev-i386

4、/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: * [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1

解决方法:

sudo apt-get install g++-multilib

5、external/clearsilver/cgi/cgi.c:22:18: fatal error: zlib.h: No such file or directory
compilation terminated.
make: * [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1

解决方法:

sudo apt-get install zlib1g-dev

6、frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]
make: * [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1

解决方法:

编辑frameworks/base/libs/utils/Android.mk文件,
修改

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

注意 fpermissive 前面为短线

7、/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: * [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

解决方法:

sudo apt-get install lib32z1-dev

8、Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: * [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127

解决方法:

sudo apt-get install flex

9、/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: * [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

解决方法:

sudo apt-get install lib32ncurses5-dev

10、prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: * [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/Android/main-common.o] Error 1

解决方法:

sudo apt-get install libx11-dev

11、sh: gperf: not found
calling gperf failed: 32512 at ./makeprop.pl line 96.
make: * [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25
make:* Deleting file`out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h’

解决方法:

sudo apt-get install gperf

12、host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
:0:0: error: “_FORTIFY_SOURCE” redefined [-Werror]
:0:0: note: this is the location of the previous definition
cc1plus: all warnings being treated as errors
make: * [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error

解决方法:

编辑build/core/combo/HOST_linux-x86.mk文件,
修改

HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

处理完错误,就可以去做别的事情了,最后编译成功,如图:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值