osx 10.10.1編譯 Android 4.4.4_r2

來源:互聯網
上載者:User

標籤:

一、下載android 4.4.4_r2源碼
1、建立目錄:cd ~ && mkdir bin src
2、切換到bin 目錄,按官方教程初始化好repo檔案3、設定檢出android源碼相關的host ip地址為nslookup g.cn查詢出來的IP地址;本次編譯使用的host  ip地址(加入到hosts列表)
203.208.46.148 googlesource.com203.208.46.148 www.googlesource.com203.208.46.148 android.googlesource.com64.233.168.87 chromium.googlesource.com64.233.168.87 gerrit.googlesource.com64.233.168.87 kernel.googlesource.com

4、在src目錄執行../bin/repo sync,等下載好源碼,現在是android 5.0發布之後,源碼下載完後有70G+,裡面有個git的索引目錄.repo有60G+之大
二、編譯android 4.4.4_r2源碼
1、修改系統架構源碼,需要修改標頭檔如下
/System/Library/Frameworks/QTKit.framework/Headers/QTMovieModernizer.h:156:/System/Library/Frameworks/QTKit.framework/Headers/QTMovieModernizer.h:163:
編譯qume時候報錯:error: expected a property attribute before ‘atomic’網上搜尋得出結論是新版xcode編譯預設了objc的property都是atomic的,所以不能定義 property attribute 為 atomic,都說要裝xcode5.x來編譯。沒那閑工夫,直接注釋QTMovieModernizer.h:156, 163兩行的atomic關鍵字,改後可以xcdoe 6.1.1正常編譯過去。
2、修改android源碼編譯指令碼,使其支援10.10系統下編譯。直接修改檔案
//相關修複方法從此博主小球球處得知,安裝編譯環境什麼都都是學習博主小球球的,感謝。vi build/core/combo/HOST_darwin-x86.mk
//找到找到mac_sdk_versions_supportedmac_sdk_versions_supported := 10.6 10.7 10.8 改成 mac_sdk_versions_supported :=  10.9 10.10
修改external/chromium_org/base/android/jni_generator/jni_generator.py,按博主提示得到補丁修改,補丁片段就是檢查系統版本,決定子進程啟動參數是否帶-fpreprocessed
修改build/core/combo/HOST_darwin-x86.mk 
ifeq ($(mac_sdk_version),10.8) // 10.8改成我們的sdk版本10.9
# Mac SDK 10.8 no longer has stdarg.h, etc
據說到這裡博主小球球就可以愉快的編譯下去了,可惜我不能。還需處理幾個步驟處理一下。

3、移除NDK_ROOT環境變數,在開始編譯支援需要unset NDK_ROOT, 否則編譯出現webrtc神馬的錯誤。如果你沒裝NDK,沒設定NDK_ROOT環境變數忽略之。
4、為SDL打源碼補丁,為什麼g神們就沒打上補丁呢,只好我們自己來修改源碼,參考補丁地址是http://hg.libsdl.org/SDL/changeset/bbfb41c13a87,在源碼目錄找到並開啟檔案SDL_QuartzVideo.h,找到CGDirectPaletteRef palette所在行數,前後加入判斷,如下: 
 #if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)     CGDirectPaletteRef palette;            /* palette of an 8-bit display */ #endif

5、至此我們就真的可以愉快的編譯下去了,我使用的的是遠程mac機器來編譯,所以在ssh 到遠程mac後切換到android src目錄後執行
source build/envsteup.sh //匯入一下環境變數lunch 1  //估計產生arm-eng的編譯配置吧nohup make -j4 > ~/android-build.log 2>&1  & //很奇怪的是,需要重新登入ssh,才能順利編譯,在本地表現為需要重新開啟新視窗,否則出現是奇怪分隔字元錯誤。
至此,我們的make就在後台使用4線程去編譯了,2小時完成組建了20G的out目錄。 
  

osx 10.10.1編譯 Android 4.4.4_r2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.