Google官方建议在Mac OS上编译Master下的代码所需环境为MacOS 10.8 (Mountain Lion) + Xcode 4.5.2;编译4.2.x分支下的代码需MacOS 10.6 (Snow Leopard)或MacOS 10.7 (Lion), 以及Xcode 4.2;编译4.0.x及以前的代码需MacOS 10.5 (Leopard)或MacOS 10.6 (Snow Leopard),并且需要MacOS 10.5 SDK。而我这边的环境为Mac OSX 10.7.5,Xcode 4.4.1,待编译的Android版本为4.0.1_r1。由于不是官方推荐的环境,所以在编译过程中遇到很多问题,这里一一记录下。
1. Need the MacOSX10.5 sdk. 问题,解决方法有两种:
a). 修改编译脚本“external/qemu/Makefile.android”,找到如下内容:
ifneq ($(filter 10.1 10.2 10.3 10.1.% 10.2.% 10.3.% 10.4 10.4.%,$(DARWIN_VERSION)),) $(error Building the Android emulator requires OS X 10.5 or above) endif ifeq ($(filter 10.5 10.5.%,$(DARWIN_VERSION)),) # We are on Snow Leopard or above #LEOPARD_SDK := /Developer/SDKs/MacOSX10.5.sdk #LEOPARD_SDK := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk ifeq ($(strip $(wildcard $(LEOPARD_SDK))),) $(info Please install the 10.5 SDK on this machine at $(LEOPARD_SDK)) $(error Aborting the build.) endif MY_CFLAGS += -isysroot $(LEOPARD_SDK) -mmacosx-version-min=10.5 -DMACOSX_DEPLOYMENT_TARGET=10.5 MY_LDLIBS += -isysroot $(LEOPARD_SDK) -Wl,-syslibroot,$(LEOPARD_SDK) -mmacosx-version-min=10.5 endif
蓝色语句为原始代码,红色为需要修改的地方。可以看到,脚本中指定了10.5 SDK的位置,只要将该位置换成10.7 SDK的位置,并且把条件判断的版本修改为10.7就可以继续编译了。但是