【发布时间】:2020-09-30 23:14:33
【问题描述】:
我已经挣扎太久了,所以我需要帮助:)
我制作了一个大型 QT5.8 应用程序,通常当我想用我的 PC 编译它时,我只需要运行以下命令:qmake -qt=5.9 -spec linux-arm-gnueabihf-g++ -config configuration_name。 通过这个命令,我可以使用 linux-arm-gnueabihf-g++ 工具链交叉编译我的 armhf 架构的源代码。
但是现在,可以轻松地为我的目标(Raspberry pi)创建一个 yocto 映像,我想制作一个配方来编译我的 qt 软件并将其放入我的映像中。 目前,我成功地在我的食谱中完成了以下任务:
- do_fetch -> Yocto 从 git repo 获取源代码(OK)
- do_unpack -> 好的
之后我想执行一个 qmake 命令来生成我的 makefile,但这是我的问题:/
首先,我使用
在我的食谱中包含了 qmake5 类require recipes-qt/qt5/qt5.inc
然后我尝试了很多东西..
将“qmake”写入 do_configure 任务不起作用。我尝试的最后一件事是:'${OE_QMAKE_QMAKE} ${S}/my_software.pro -config my_config' 但仍然是同样的错误:
Could not find qmake spec 'linux-oe-g++'
我不知道该怎么做,也找不到任何食谱示例来做我想做的事情。 如果有人已经遇到过这个问题或有使用 yocto 配方编译 qt5 软件的经验,我希望得到您的帮助:)
我的食谱:
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = " "
USERNAME = "****"
PASSWORD = "*****"
S = "${WORKDIR}/git"
require recipes-qt/qt5/qt5.inc
do_fetch(){
git clone http://${USERNAME}:${PASSWORD}@gitlab.....
}
do_configure () {
${OE_QMAKE_QMAKE} ${S}/my_software.pro -config my_config
}
谢谢
【问题讨论】:
-
如果您需要指定额外的 qamke 选项,则不需要覆盖
do_configure,通过EXTRA_QMAKEVARS_PRE = 'X=Y.....'传递它们 -
感谢您的回复,我会做的。无论如何,即使没有“do_compile”覆盖,qmake 也永远不会执行
-
确保
S变量指向您的源目录的顶部,默认值可能不正确,因此您可能需要调整配方中的变量,理想情况下也不需要覆盖do_fetch,你可以简单地使用SRC_URI = "git://${USERNAME}:${PASSWORD}@gitlab.....;protocol=ssh"然后设置S = "${WORKDIR}/git "你还需要设置SRCREV = "some git SHA value from your repo"
标签: yocto