Qt – Linux的编译不是针对Android的编译?为什么?

Qt 5有Android支持:使用Android SDK和NDK你也可以编译Qt应用程序在Android上运行.现在我不明白.早在Android出现之前,Qt就是一个跨平台.这意味着它能够在Windows,Mac和Linux上进行编译.但Android IS Linux不是吗?为什么我需要像SDK和NDK这样的特殊Android工具来为Android编译.为什么在不编译Android的情况下编译Linux?

解决方法:

Android不仅仅是一个操作系统,而是一整套移动软件.

这是因为android的结构(在应用程序的上下文中)与linux的结构非常不同.所有Android应用程序都在Dalvik虚拟机(DVM)的实例上运行,并且相互之间是相互封装的.因此,任何需要在Android上运行的应用必须与DVM兼容.

Android基于自定义linux内核,它也使用相同的文件结构,但从平台的角度来说,Android中运行的Apps运行在完全不同的环境中.

Android structure http://www.cubrid.org/files/attach/images/220547/480/224/typical-schematic-of-android_structure.png

还有一个官方消息来源Android Low-Level System Architecture

关于QT5,我不太了解,但我认为QT与android框架不兼容

上一篇:c – 为什么我可以在包含const int且没有编译器错误的多个cpp文件中包含头文件?


下一篇:c – 将这些编译器选项放入CMakeLists.txt中