Cmake与bitbake配方

Zaf*_*yed 9 cmake openembedded bitbake

我正在尝试用自己的包构建一个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
Run Code Online (Sandbox Code Playgroud)

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

CMake的-BitBake的-QT

Zaf*_*yed 14

使用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}
}
Run Code Online (Sandbox Code Playgroud)

以前我没有添加do_install,这是yocto下载配方但无法包含它的原因Image.

  • do_install没有必要,请参阅elmsfu的回答 (6认同)
  • 与之前的评论一样,"do_install"不是必需的.默认情况下,`cmake.bbclass`将运行`oe_runmake'DESTDIR = $ {D}'install`. (4认同)

小智 13

如果CMakeLists.txt使用该install命令,则bitbake将为您执行安装,您无需定义自己的do_install.

install(TARGETS cameracapture DESTINATION bin)
Run Code Online (Sandbox Code Playgroud)


vin*_*yal 5

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

例子 S = "${WORKDIR}/cameracapture

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

任何您如何在您的配方中继承 cmake bbclass 的方式,因此它将处理所有配置、编译和安装功能。

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

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

EXTRA_OECMAKE = "all"