cmake - Yocto 填充 SDK - Receipe 从 cmake 继承
问题描述
我使用 cmake 来构建我的源代码。它依赖于一个名为“spdlog”的包。
我想使用 yocto 生成 sdk。SDK 使用 populate_sdk 正确生成,但 spdlog 配置 cmake 文件未在 SDK 中提供。我的收据:
SUMMARY = "Spdlog"
DESCRIPTION = "Fast C++ logging library"
AUTHOR = "author name"
LICENSE = "CLOSED"
SECTION = "libs"
SRC_URI = "git://git@github.com/gabime/spdlog.git;branch=master;protocol=ssh"
SRCREV = "7088644d3f69f18b51671eb52dd49028fd858add"
PR = "r0"
PVBASE := "${PV}"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PVBASE}:"
PV = "${PVBASE}.${SRCPV}"
S = "${WORKDIR}/git"
inherit cmake pkgconfig
FILES_${PN} += "/usr/lib/cmake/spdlog/spdlogConfig.cmake \
/usr/lib/cmake/spdlog/spdlogConfigVersion.cmake \
"
但是,我们安装了我的 SDK 并尝试使用它来编译我的代码,它失败并出现以下错误:
Make Error at CMakeLists.txt:89 (find_package):
Could not find a package configuration file provided by "spdlog" with any
of the following names:
spdlogConfig.cmake
spdlogConfigVersion.cmake
当我检查我的 build tmp/work/spdlog 文件夹时,我可以看到导出的文件:
./image/usr/lib/cmake/spdlog/spdlogConfig.cmake
./sysroot-destdir/usr/lib/cmake/spdlog/spdlogConfig.cmake
./packages-split/spdlog/usr/lib/cmake/spdlog/spdlogConfig.cmake
./build/CMakeFiles/Export/lib/cmake/spdlog/spdlogConfig.cmake
./build/spdlogConfig.cmake
./package/usr/lib/cmake/spdlog/spdlogConfig.cmake
./recipe-sysroot-native/usr/share/cmake-3.8/Modules/FindPkgConfig.cmake
./recipe-sysroot-native/usr/share/cmake-3.8/Modules/UsePkgConfig.cmake
你对这个问题有什么想法吗?
解决方案
来自 FILES_${PN}-dev 的每个包都将在 Yocto SDK 中可用。
我的问题的解决方案是在 FILES_${PN}-dev 下设置 cmake 所需的配置文件 *.cmake。
推荐阅读
- python - 跳过以逗号分隔的熊猫列/多个空列表
- java - 使用 lambda 表达式不可能重复的功能接口解析
- javascript - 将 HTML 响应注入 iframe(来自 AJAX 调用)
- javascript - Javascript偶数和奇数范围
- php - 基于 Id 的 DOMDocument 提取 XML 数据
- python - io.UnsupportedOperation:不可写 - 变量名相同
- javascript - 如何创建带参数的点函数?
- java - java中类的内存分配
- c# - 在 C# 中调用 ShellWindows FindWindowSW 方法
- python - 更改使用 urllib.request.urlretrieve() 下载的本地存储的 .html 文件的编码