圣诞本来想去西单的,还是留在宿舍编译4.0源码,当前硬件 linux分区80G+4G swap,内存4G,i5 2430
环境配置这儿有,官方的说明那是。
编译遇到问题我都写出来了。
遇到的第一处错误
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 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
并不会就这样结束,接下来你会发现有个地方你必须把gcc改为4.4的
第二处错误上场了
make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach
在工程根目录下,打开下面的makefile文件:
源码目录 frameworks/compile/slang/Android.mk
.在打开的makefile文件中按照下面更改:
#local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
原因很简单 把警告当作error处理,所以此处要修改
==============================================
继续编译,错误忘了,没记录。这儿需要修改cpp如下。详情可以到 groups看,错误应该有个linker什么的,看代码提示就行了
http://groups.google.com/group/android-building/browse_thread/thread/52b96e5407514e45/f384d6df98f6f76b?lnk=raot
to external/mesa3d/src/glsl/linker.cpp
=============================================
继续编译
make: *** [out/host/linux-x86/obj/EXECUTABLES/opannotate_intermediates/opannotate] 错误 1
===================================
最后你可能发现 找不到-lstdc++ 悲剧。这个是在g++ mutillib中
lib64stdc++6-4.4-dbg gcc-4.6-doc libstdc++6-4.6-dbg lib64stdc++6-4.6-dbg
lib64mudflap0 libstdc++6-4.6-doc
g++ g++-4.4-multilib g++-4.6 g++-4.6-multilib g++-multilib gcc-4.4-multilib
gcc-4.6-multilib gcc-multilib lib64gcc1 lib64gomp1 lib64quadmath0
lib64stdc++6 libc6-amd64 libc6-dev-amd64 libstdc++6-4.6-dev
不过直接把gcc g++改为4.4就行了。不然早晚得改,代码基本没什么问题,关键你要找对修改的地方,还有各种依赖包要处理好
好了,看到结果了,编译完成了,嘎嘎
Installed file list: out/target/product/generic/installed-files.txt
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
thinkinbunny@thinkinbunny-360buy:~/桌面/droid4.03/droid$