聖誕本來想去西單的,還是留在宿舍編譯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$