解決Android在MAC OSX上編譯缺少10.5SDK問題

在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


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