Android的linux内核和文件系统的编译器可以一样吗?

对于这个问题,首先得清楚Android源码是自动了一个集成的交叉编译器的,低版本在prebuilt/tool,4以上放在了prebulits/gcc下面的。

 

对于交叉编译器来说,在于提供了良好的基础库用于应用程序的编程。而对于内核操作系统的源码来说(全部源码,外加需要的库等都存在),其根本不需要编译器提供任何的库支撑,编译器只需要把内核各模块进行编译,然后链接出最终的image就可以。

 

而对于应用来说,编译器基本是动态链接库的,因此这些库都在基本的文件系统下面。故需要android自己的编译器,因为用的是bionic库来完成,而android源码文件编译时会自动使用自己的交叉编译器,生成NDK层的.so等,这些都用的自带的编译器。故只要内核的编译器可以满足CPU架构的需要如arm-linux等,应该就可以。一句话内核编译对编译器的依赖性很小,编译器只是辅助。编译器对应用比较关键,编译要链接库,跑起来要用自己的编译器带来的系统库文件,故肯定是需要android自己的。

 

推荐都使用android自己的,因为本身就支持arm-linux的内核编译。

Logo

更多推荐