1. 程式人生 > >在Mac OS 10.12 編譯Android原始碼:錯誤小結

在Mac OS 10.12 編譯Android原始碼:錯誤小結

在Mac OS 10.12 編譯Android原始碼

錯誤小結

記錄自己遇到的一些問題

1、在Terminal跳轉到映象目錄的命令是

cd /Volumes/映象名稱

即建立的磁碟映象是在根目錄下的Volumes資料夾

2、在通過make -j8指令進行程式碼編譯時,遇到

  • fatal error: ‘unistd.h’ file not found
  • fatal error: ‘stdlib.h’ file not found

類似的檔案找不到的錯誤

其實這些檔案都在/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.xx.sdk/usr/include

目錄下,那麼猜測應該是路徑有問題,在網上找到類似的問題Mac下Android原始碼(AOSP)編譯環境搭建方法(錯誤3處理)

原因是:我在生成MacOSX10.11.sdk的連結時沒有用命令列,直接“右鍵點選”>“製作替身”,然後修改名稱,從而出現了上面的錯誤,最後參考上面(錯誤3處理)的解決方法:

把下載的壓縮包MacOSX10.11.sdk解壓到 ~/lib (自己定義的目錄)

然後執行命令

sudo ln -s ~/lib/MacOSX10.11.sdk /Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

重新弄一個軟連結,然後執行 make -j8 編譯Android原始碼通過。

Google檢視快捷方式的不同OS X中快捷方式的區別,才知道替身是OS X自己的概念,只適用Finder層級,儲存的資訊包含檔案路徑和inode,軟連結才是Unix的概念,儲存的資訊是檔案的路徑(最簡單的測試是用cd命令,cd 替身是跳轉不了的,而cd 軟連結可以開啟資料夾)。

因此生成的快捷方式要採用軟連結,否則容易出現檔案找不到的問題。