在Mac OS 10.12 編譯Android原始碼:錯誤小結
阿新 • • 發佈:2019-01-05
在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
原因是:我在生成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 軟連結可以開啟資料夾)。
因此生成的快捷方式要採用軟連結,否則容易出現檔案找不到的問題。