Ubuntu12.04編譯Android 錯誤(飛凌6410)

按照文檔修改了:

由於ubuntu12.04 用的gcc 是4.6 的版本,如果使用Ubuntu 12.04 編譯需要修改代碼:
build/core/combo/HOST_linux-x86.mk

-HOST_GLOBAL_CFLAGS+=-D_FORTIFY_SOURCE=0
+HOST_GLOBAL_CFLAGS+=-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
frameworks/base/libs/utils/Android.mk
-LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
+LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive


還是出現錯誤:

frameworks/base/libs/utils/RefBase.cpp: 在成員函數‘void android::RefBase::weakref_type::trackMe(bool, bool)’中:
frameworks/base/libs/utils/RefBase.cpp:483:67: 錯誤: 將‘const android::RefBase::weakref_impl’作爲‘void android::RefBase::weakref_impl::trackMe(bool, bool)’的‘this’實參時丟棄了類型限定 [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 錯誤 1

原因:Ubuntu 12.04的gcc 4.6版本太高了,android編譯需要gcc 4.4

解決辦法:更換gcc、g++版本4.6爲4.4

                         apt-get install gcc-4.4

                         apt-get install g++-4.4

                          rm -rf /usr/bin/gcc /usr/bin/g++

                          ln -s /usr/bin/gcc-4.4 /usr/bin/gcc

                          ln -s /usr/bin/g++-4.4 /usr/bin/g++

錯誤2:

g++: 錯誤: –fpermissive:沒有那個文件或目錄
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 錯誤 1

解決辦法:apt-get install g++-4.4-multilib

編譯通過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章