如何在 Yocto 中创建 cmake 食谱?

How to create cmake recipes in Yocto?

我想弄清楚如何创建一个从 git 下载并使用 make 文件构建的食谱。 例如:

g3logger (git https://github.com/KjellKod/g3log.git)

食谱 "bb" 文件看起来应该是什么样子?

除了您的评论: 也许这是你的 Makefile 的错误? 对于字符串,它应该是:

#include <string.h>

#include <cstring>

您还可以显示特定任务的日志,例如 do_compile,这样我们会有更深入的了解。

bitbake 中调试任务的提示:Yocto Ref Manual - Debugging build failures

所以,这是 g3log 中的一个问题(其他程序也可能有)。如果您打开 'Build.cmake' 并查看第 53-56 行,您会看到:

   ELSE()
       set(PLATFORM_LINK_LIBRIES rt)
       set(CMAKE_CXX_FLAGS "-Wall -rdynamic -Wunused -std=c++11 -pthread -D_GLIBCXX_USE_NANOSLEEP -D_GLIBCXX_USE_SCHED_YIELD")
   ENDIF()

这会覆盖 OpenEmbedded 放入 toolchain.cmake 的内容。如果您将其更改为:

       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -rdynamic -Wunused -std=c++11 -pthread -D_GLIBCXX_USE_NANOSLEEP -D_GLIBCXX_USE_SCHED_YIELD")

它现在将继承 OpenEmbedded 希望您拥有的标志,例如 --sysroot=,以便找到标准包含。