gpt4 book ai didi

qt - Qt 快速编译器究竟做了什么?

转载 作者:行者123 更新时间:2023-12-01 10:32:27 28 4
gpt4 key购买 nike

什么 Qt 快速编译器 到底是做什么的?我的理解是它将 QML/JS“编译”为 C++ 并将其集成到最终的二进制文件/可执行文件中。因此,在运行时没有 JIT 编译或任何其他与 JS 相关的东西。

然而,我在某处看到一篇文章声称它不是这样的,实际上它只是将 QML/JS“捆绑”到最终的二进制/可执行文件中,但在运行时仍然存在一些与 QML/JS 相关的开销。

documentation page有这样的解释:

.qml files as well as accompanying .js files can be translated into intermediate C++ source code. After compilation with a traditional compiler, the code is linked into the application binary.



这个“中级 C++ 源代码”是什么?为什么不只是“C++ 源代码”?这让我很困惑,但最后一条声明有点 promise ,是的,它是一个 C++ 代码,在使用 C++ 编译器编译后,您将拥有一个二进制/可执行文件,而无需在运行时进行任何额外的编译/解释。

真的是这样吗?

最佳答案

您的问题已经包含答案。

它将代码编译成 C++,这是中间性质的,因为只有 C++ 代码是不够的。你需要二进制文件。因此,在编译为 C++ 之后,这些文件将被编译为二进制文件。然后将它们链接起来。
声明只说:我们不编译为二进制,而是编译为 C++。您需要使用您选择的 C++ 编译器将其编译为二进制文件。

如果您仅将其放入资源(qrc 文件)中,则会发生捆绑。将其放入资源中并不意味着您使用编译器。

然后是 JIT 编译器,它可能(在受支持的平台上)执行即时编译。更多相关信息 here

关于qt - Qt 快速编译器究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266770/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com