Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将qcharts模块安装到yocto sdk_C++_Qt_Yocto_Bitbake_Qtcharts - Fatal编程技术网

C++ 将qcharts模块安装到yocto sdk

C++ 将qcharts模块安装到yocto sdk,c++,qt,yocto,bitbake,qtcharts,C++,Qt,Yocto,Bitbake,Qtcharts,我试着交叉编译一段时间。我执行以下步骤编译qt程序: source/opt/myimage/2.1.2/environment-setup-cortexa9hf-neon-poky-linux-gnueabi qmake-o Makefile areachart.pro 制造 但是当我将QT+=charts添加到任何项目运行qmake-likeqmake-o Makefile areachart.pro时,我遇到了以下错误: 项目错误:QT:图表中的未知模块 以下是qmake-v的输出:

我试着交叉编译一段时间。我执行以下步骤编译qt程序:

  • source/opt/myimage/2.1.2/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
  • qmake-o Makefile areachart.pro
  • 制造
但是当我将
QT+=charts
添加到任何项目运行qmake-like
qmake-o Makefile areachart.pro时,我遇到了以下错误:
项目错误:QT:图表中的未知模块
以下是
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
模块来编译示例吗?如果是,怎么做

由于某些原因,我能够使用
qtcreator
交叉编译,并获得qt示例和qtchart库本身的二进制文件。我还在目标平台上运行qt示例,将生成的
libQtCharts.so
和其他文件手动放入目标平台上的
/usr/lib/
/usr/include/
,我能够在目标平台上绘制图表

然而,我需要的是在我的项目中包括图表,并运行上面提到的
qmake
步骤。但是我得到的是
项目错误:QT:charts中的未知模块

我试着把
libQtCharts.so
放在
/opt/myimage/2.1.2/sysroot/cortexa9hf-neon-poky-linux-gnueabi/usr/lib
中手动编译qt源代码,但仍然无法用
qmake-o Makefile-areachart.pro
获取make文件,正如您所指出的,您需要
qtcharts
包(准确地说,还有
qtcharts dev
)在SDK中。您还需要在目标上(即在图像中)安装
qtcharts
包,否则在目标上执行二进制文件时,运行库将丢失

软件包的添加取决于构建SDK的方法。首选的方法是
populate_SDK
任务,因此我将在这里描述它(它还将软件包添加到您的目标中)

构建SDK的命令是
bitbake your_image-c populate_SDK
。将以下行添加到
your_image.bb
recipe以将
qtcharts
包添加到映像(第1行)和SDK的其他Qt5内容(第2行)

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


inherit-populate\u-sdk\u-qt5
对于qt5包是特定的(并且是必需的),因为sdk需要其他东西(例如
qt.conf
,一些工具).

谢谢。我已经使用了这两种方法将
qcharts
添加到我的目标映像中,这样我就可以使用qchart执行二进制文件。但是实际问题没有解决,我认为qcharts仍然没有添加到SDK中。我已经添加了
image\u INSTALL\u append=“qtcharts”
到bb文件,然后
bitbake myimage-c填充_sdk
最后
bitbake myimage
但仍然没有/opt/myimage/./usr/lib中libQt5Chart.so等的痕迹。我做的最后一件事是
bitbake meta-toolchain-qt5
并运行生成脚本在/opt/myimage/中安装sdk……我在这里缺少什么?这看起来是一项基本任务在sdk中添加一个新的库/模块。我刚刚注意到我在tmp/deploy/sdk中有两个sdk:
myimage-glibc-x86_64-core-image-myimage-cortexa9hf-neon-toolchain-2.1.2.sh
myimage-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-2.1.2.sh
那么我的问题是应该添加qtcharts在meta上添加qtcharts的哪个配方-toolchain-qt5 sdk?因为我需要用qmake here
/opt/myimage/2.1.2/sysroot/x86_64-pokysdk-linux/usr/bin/qt5/qmake
@PHA meta-toolchain-qt5编译我的程序,我的答案中的映像安装在这里没有帮助(我看到了你的新问题,我将在周一尝试回答)。您可以检查
tmp/deploy/sdk
目录中的
xxx.target.manifest
文件吗?它们应该包含qtcharts。如果没有,qtcharts肯定不是新sdk的一部分。如果是,您的sdk安装有问题。@PHA抱歉,我完全忘记了图像r中的
继承填充sdk\u qt5
行ecipe。它是基于Qt5的SDK所必需的。我已经检查了我们的Qt5 SDK,没有看到任何其他东西,所以我希望这就是所有。。。
IMAGE_INSTALL += "qtcharts"
inherit populate_sdk_qt5