在Mac OS 10.12 编译Android源码:错误小结

在Mac OS 10.12 编译Android源码

错误小结

这次下载和编译Android源码是参考Mac 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 软链接可以打开文件夹)。

因此生成的快捷方式要采用软链接,否则容易出现文件找不到的问题。

猜你喜欢

转载自blog.csdn.net/zhanhong39/article/details/78147122