【问题标题】:Cmake with bitbake recipeCmake 与 bitbake 食谱
【发布时间】:2020-09-09 12:52:51
【问题描述】:

我正在尝试用我自己的包构建一个 yocto 图像。我在 github 上有使用 cmake 的 OpenCV 代码。

我试图为它写一个食谱并面临很多错误。任何人都可以就我的食谱中包含哪些功能或参数提供一些提示。我的食谱如下所示

DESCRIPTION = "cameracapture application" 
SECTION = "examples" 
LICENSE = "CLOSED" 
PR = "r0" 

DEPENDS += "opencv"

SRC_URI = "git://https://github.com/zafrullahsyed/cameracapture.git;protocol=https;tag=v0.1"

EXTRA_OECMAKE=""

do_configure() { 
 cmake ../ 
} 

inherit pkgconfig cmake

我按照这些教程使用 cmake 编写了我的食谱,但徒劳无功: Bitbake Player recipe

Cmake-Bitbake-QT

【问题讨论】:

  • 能否请您提及错误?
  • 另外,你不应该再使用 PR。

标签: cmake openembedded bitbake


【解决方案1】:

用cmake编写自己的菜谱的正确方法如下:

DESCRIPTION = "cameracapture application" 
SECTION = "examples" 
LICENSE = "CLOSED" 
PR = "r0" 

DEPENDS = "opencv"

SRC_URI = "git://github.com/zafrullahsyed/cameracapture.git;protocol=https;tag=v0.1"

S = "${WORKDIR}/git"

inherit pkgconfig cmake

do_install() {
    install -d ${D}${bindir}
    install -m 0755 cameracapture ${D}${bindir}
}

之前我没有添加 do_install,这就是 yocto 下载食谱但无法包含图片的原因。

【讨论】:

  • do_install 不是必须的,见 elmsfu 的回答
  • 就像前面的评论一样,do_install 不是必需的。 cmake.bbclass 默认会运行 `oe_runmake 'DESTDIR=${D}' install`。
【解决方案2】:

如果 CMakeLists.txt 使用 install 命令,那么 bitbake 将为您完成安装,您无需定义自己的 do_install。

install(TARGETS cameracapture DESTINATION bin)

【讨论】:

  • 你的意思是不需要在配方中添加do_install()
  • @hukeping 您不必添加 do_install() 任务。必须在 CMakeLists.txt 中添加答案中指出的安装指令。 cmake 基类中的 do_install() 将使用“make install”。
【解决方案3】:

在您的配方中添加源目录。

示例 S = "${WORKDIR}/cameracapture

S 是你的 CMakeList.txt 所在的源代码路径。

无论您如何继承配方中的 cmake bbclass,它都会处理所有配置、编译和安装功能。

完成此操作后,您还可以删除上述配方中的 do_configure 函数。

如果有的话,你可以将你的 make 选项添加到下面的宏中(因为你保持为空)。 例子

EXTRA_OECMAKE = "all"

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-04-21
  • 2018-11-27
  • 2015-06-23
  • 2018-03-14
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多