qt - 如何使用 yocto 构建简单的 qt 应用程序?

标签 qt yocto bitbake openembedded

我有 yocto 开发环境设置,我可以在其中进行 bitbake 并在目标中运行一个简单的 C++ 应用程序。现在我想尝试使用简单的 Qt 应用程序。当我执行 bitbake-layers show-layers 时,它会在列表中显示 meta-qt5...

meta-qt5
/home/prc1cob/repo/out/salt/kawa/../../..//os/external/meta-qt5 7 meta-oe
/home/prc1cob/repo/out/salt/kawa/../../../build/yocto/meta-openembedded/meta-oe 6

有了这个,我假设 qt5 已经存在于我的 yocto 版本中。 如何编写 .bb 文件来构建一个简单的 HelloWorld qt 应用程序,如下所示...

#include <QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    qDebug() << "Hello World";

    return a.exec();
}

谢谢!!

最佳答案

Yocto 提供了一个很棒的类 qmake5 来编译基于 QMake 的 QT 项目。

为了使用它,为项目创建一个 .pro 文件:

qtexample.pro

QT += core
SOURCES += qtexample.cpp

qtexample.cpp

#include <QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    qDebug() << "Hello World";

    return a.exec();
}

现在,在您的层中,您可以添加一个编译该项目的简单配方。

例如:meta-custom/recipes-project/qtexample

qtexample文件夹中创建files文件夹并将qtexample.proqtexample.cpp复制到其中。

qtexample文件夹中直接创建qtexample_0.1.bb配方:

SUMMARY = "QT Example Recipe"
LICENSE = "CLOSED"

SRC_URI = "file://qtexample.pro \
           file://qtexample.cpp"

DEPENDS += "qtbase"
RDEPENDS_${PN} += "qtwayland"

S = "${WORKDIR}"

inherit qmake5

您可以更改当然的版本(0.1)。

布局应如下所示:

meta-custom/
    ├── recipes-project/
        ├── qtexample_0.1.bb
        └── files/
            ├── qtexample.pro
            └── qtexample.cpp

然后,bitbake qtexample 应该可以工作并创建一个 qtexample 二进制文件,您可以在 ${WORKDIR} 中找到该二进制文件

关于qt - 如何使用 yocto 构建简单的 qt 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68895012/

相关文章:

c++ - 动态创建自定义小部件的新实例并连接信号和插槽 (Qt)

c++ - QTcpServer错误C1083, "no such file or directory"

c++ - 如何在 QT 或 Windows API 中连接到无线 WIFI 网络?

automation - 如何从 bitbake 配方中提取许可信息

c - 如何在 yocto 中构建 hello world 食谱

c++ - 指向 C++11 foreach 循环中链接的链接

c - 在ioctl linux设备驱动中读写

compilation - Yocto:如何添加树外设备驱动程序?

ros - 在 Gumstix overo 上获取我自己的 ROS 包(Bitbake yocto 项目)

linux - 如何在 Yocto 中添加 Boost 头文件?