Ubuntu 11.10[64位] 编译Android源码
这里是64位Ubuntu 11.10系统,Android2.3.7源码。官网上有编译源码的指导,但实际还会遇到些问题。JDK安装就不说了,上一篇刚写过。 欢迎互相交流。 另,配置这些东西让我有些伤心,越配越消极。个把月前的编译还未成功,这次可是重装系统来的。1)安装依赖的包终端执行:$ sudo apt-get install git-core g...
·
这里是64位Ubuntu 11.10系统,Android2.3.7源码。官网上有编译源码的指导,但实际还会遇到些问题。JDK安装就不说了,上一篇刚写过。
欢迎互相交流。
另,配置这些东西让我有些伤心,越配越消极。个把月前的编译还未成功,这次可是重装系统来的。
1)安装依赖的包
终端执行:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
2)编译源码
进入源码目录:
$ . build/envsetup.sh
$ lunch
输入 : 1
$ make -j4
遇到的问题
a) frameworks/base/libs/utils/RefBase.cpp:507:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]
解决方法:
进入源码目录frameworks/base/下,执行
$ git cherry-pick c4fbbe06
$ git cherry-pick c4fbbe06
b) make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1
据说此处编译错误是由于ubuntu 11.10采用了
GCC4.6.1导致的。
修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:
将以下语句
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改为
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
3)编译完成
编译完成后会在out/target/product/generic目录下生成system.img, ramdisk.img, userdata.img三个镜像文件。
终于结束了,环境问题困扰了我好久,过程是
蛋疼的
,但现在还是有些快感的。工作日报都知道怎么写了,加班,搞点内容出来才行。
==========参考
GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套
以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器。
GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada与其他语言。
GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada与其他语言。
更多推荐
已为社区贡献1条内容
所有评论(0)