什么是Qt Bare Metal?

Nej*_*jat 8 embedded qt qmake bare-metal qt-creator

QtCreator有一个名为"Bare Metal"的插件.裸机是指没有操作系统的计算机.我没有看到很多关于Qt Bare Metal的发展.它是一种为裸机系统开发Qt的方法吗?Qt是否在没有操作系统的系统上运行?如果是,这种方法对嵌入式系统开发有哪些优势?

lpa*_*app 6

它是一种为裸机系统开发Qt的方法吗?

没有.

Qt是否在没有操作系统的系统上运行?

没有.

裸金属意味着你通常有几KB的RAM和ROM.

我认为你把Qt(框架)与QtCreator(IDE)混淆了.Tim Sander 在2013年的Qt开发者日详细解释了这一点.

此插件用于为此类平台开发小型软件,但不使用Qt框架本身.

换句话说,您仍然可以使用集成开发环境的通用功能.

因此,它不是运行时辅助工具,而是开发和构建时间助手.您仍然可以qmake用于为这么小的嵌入式环境构建二进制文件.

在这里,您可以在官方文档中找到更多信息.

  • "Qt是否在没有操作系统的系统上运行?" 我不同意.当然它确实在没有操作系统的系统上运行,实际上非常令人钦佩.裸金属并不意味着内存大小,它只意味着没有完整的操作系统.我有一个带有16MB RAM的裸机ZNEO系统,运行频率为20MHz,而且我正在运行Qt核心,实际上(此时非常可靠的概念,但它可以完成). (6认同)
  • 它运行在C++的独立实现上:没有文件IO,没有进程,没有本机事件(这是一种解脱),它是单核,因此原子很简单,设置了QT_NO_SYSTEMLOCALE,依此类推.我不知道你说的是哪些编解码器 - 文本编解码器是简单的C++代码,即使在Arduino(BTDT)上也可以单独编译.我会说调整mkspec是最简单的部分.一旦我获得了发布编译器的绿灯,就可以显示Qt在其上运行了. (3认同)
  • 是的,所以这不是Qt运行,而是一个非常小的截断子集.实际上,Qt的内部结构非常依赖于运行内核的存在.也许它的一小部分"可以构建在C和C++ std之上".无论如何,我们仍然没有证据.毕竟,Qt意味着是一个用户空间框架而不是内核.如果任何Qt要素没有在它上面运行,我不会考虑"Qt在这个东西上运行".你可以说"qtbase和qtcore的一小部分正在运行",但"Qt作为一个整体"?我不会. (3认同)