交叉编译Qt模块(不构建完全全新构建)并添加到现有Qt中

cross compiling a Qt module(Not building total fresh build) and adding to existing Qt

本文关键字:构建 Qt 添加 新构建 模块 交叉编译      更新时间:2023-10-16

我正在使用Qt在嵌入式Linux设备上进行应用程序开发,该设备捆绑在包含Qt和设备供应商提供的其他所需工具的操作系统映像文件上(他们在其上构建了OS,Qt等)。

目前,我正在尝试自定义Qt模块之一(有小改动)并用修改后的模块替换现有模块,当前的Qt版本可以这样做吗? 另外,我不允许构建全新的Qt版本。

我通过从这里获取模块并将其像通常的源文件一样添加到我的项目中来尝试这一点,但由于对其他源/模块的严重依赖似乎非常困难。对于这种情况,有什么解决方案/建议吗?或者我只能构建Qt的单个模块(不是完整版本)?

支持重新编译单个模块,这很可能是最方便的方法。

首先,您需要获取源代码。通过 git 从 code.qt.io 或通过从 download.qt.io 下载存档。确保发布版本匹配。注意:一些附加模块在某种程度上是便携式版本的,但不能保证。

在命令行上设置交叉编译环境。如何做到这一点特定于您的环境(Yocto/OE、buildroot 等)。通常,您需要"源"一个 shell 脚本。 验证运行"哪个 qmake"的结果。结果应该是进入交叉编译器环境的路径(而不是进入主机/usr/bin)。你也可以试试,如果你可以通过"qmake;使"。通过 file 命令检查生成的二进制文件是否与您的目标匹配。

如果到目前为止一切正常,请在命令行上输入要重新编译的Qt模块的源目录。 运行 qmake。您将看到配置阶段的输出。不应该有依赖问题。之后运行制作。