将qcharts模块安装到yocto sdk

时间:2018-02-07 10:28:44

标签: c++ qt yocto bitbake qtchart

我尝试为qt chart example交叉编译yocto platform。我按照以下步骤编译我的qt程序:

  • source /opt/myimage/2.1.2/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
  • qmake -o Makefile areachart.pro
  • 使

但是当我将QT += charts添加到任何项目时运行qmake,如qmake -o Makefile areachart.pro我遇到了这个错误:
Project ERROR: Unknown module(s) in QT: charts 以下是qmake -v的输出:

QMake version 3.0
Using Qt version 5.7.0 in /opt/myimage/2.1.2/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib

我应该添加qtcharts模块my yocto SDK以便能够编译示例吗?如果有,怎么样?

由于某些原因,我能够使用qtcreator交叉编译Qt from source并获取qt示例和qtchart库本身的二进制文件。我还在目标平台上运行qt示例,将结果libQtCharts.so和其他文件手动放在目标上的/usr/lib//usr/include/中,然后我就可以在目标上绘制图表。

但是,我需要的是在我的项目中包含图表并运行上述qmake步骤。但我得到的是Project ERROR: Unknown module(s) in QT: charts 我试图在libQtCharts.so中手动编译qt源来获取/opt/myimage/2.1.2/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib,但仍然无法使用qmake -o Makefile areachart.pro

获取make文件

1 个答案:

答案 0 :(得分:1)

正如您所指出的,您需要在SDK中使用qtcharts包(同样精确地使用qtcharts-dev)。您还需要在目标上(即在图像中)使用qtcharts包,否则当您在目标上执行二进制文件时,运行时库将会丢失。

添加包取决于构建SDK的方法。首选的是populate_sdk任务,因此我将在此处对其进行描述(它还会将包添加到目标中)。

构建SDK的命令是bitbake your_image -c populate_sdk。在your_image.bb配方中添加以下行,将qtcharts包添加到图像(第1行),将其他Qt5包添加到SDK(第2行)。

IMAGE_INSTALL += "qtcharts"
inherit populate_sdk_qt5

如果您不想直接编辑图像配方,也可以将这些行放入your_image.bbappend

inherit populate_sdk_qt5对于Qt5软件包是特定的(并且是必需的),因为SDK需要其他内容(例如qt.conf,某些工具)。