在MAC OSX中下載Android所需的開發環境及代碼, 官網有詳細, 此處略
下完代碼, 配置完開發環境準備編譯時,報了以下錯誤:
Please install the 10.5 SDK on this machine at /Developer/SDKs/MacOSX10.5.sdk
external/qemu/Makefile.android:82: *** Aborting the build.. Stop.
明顯是新的OSX版本沒有安裝10.5的SDK.
解決方法有兩種:
1. 如果之前沒有安裝過XCode 4, 則從官網下載一個xcode 3.2.6版本
需要註冊一個開發賬號才能下載.Xcode下載
將xcode 3.2.6安裝完後, 在/Developer/SDKs下就會有一個MacOSX10.5.sdk文件夾, 之後再將XCode4安裝完就可以進行編譯了.
2.如果之前安裝過XCode4, 此時還是需要下載一個xcode 3.....
見官方的說明"We recommend version 3.1.4 or newer, i.e. gcc 4.2. Version 4.x could cause difficulties."
> open xcode_3.2.6_and_ios_sdk_4.3.dmg
> cd /Volumes/Xcode\ and\ iOS\ SDK/Packages
> open MacOSX10.5.pkg
安裝時選擇系統盤, 選擇"Choose Folder"
將MacOSX10.5.pkg安裝在/Developer目錄
此時就將MacOSX10.5.sdk安裝成功.
之後再進行編譯, 會再報一個strnlen的錯誤, 這是因爲./external/elfutils/config-compat-darwin.h文件中的strnlen函數與/usr/include/string.h中有衝突
所以用宏將工程中config-compat-darwin.h中的strnlen函數括起來
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
static inline strnlen(...){ ... }
#endif
此時再進行make就不會報錯了.因爲Android編譯環境設置的是SL, 需要10.5的SDK, 所以修改有兩種方法, 一個是上面寫的方法, 另一種就是修改external/qemu/Makefile.android, 將10.5修改爲10.6.
第二種方法具體操作沒有試過, 理論上是可行的.
PS.在通過macport安裝相關依賴包時會出現SDL出錯或其他錯誤, 很大原因是安裝的依賴包沒有成功. 需要重新安裝.
需要將之前的Macport卸載後重新安裝, 就OK了, 具體方法見:
http://hi.hiing.net/2011/06/use-homebrew-package-management.html