我正在尝试在 yocto 构建上编译 Ceres 解算器(适用于英特尔 Aero 无人机)。
我之前尝试使用 git 存储库进行拉取https://ceres-solver.googlesource.com/ceres-solver/但无法获取它。所以我自己下载了 tar.gz 文件,将其上传到我拥有的公共域上并尝试编译。
这是我的 bb 文件现在的样子。
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
DEPENDS = "glog gcc libeigen"
SRC_URI = "http://sidj.in/wp-content/uploads/2017/06/ceres-solver-41455566ac633e55f222bce7c4d2cb4cc33d5c72.tar.gz"
SRC_URI[md5sum] = "6f24d5639bbe738e6f8ca5d7a129400e"
SRC_URI[sha256sum] = "005ed7405350767f22164d9fff93b3613207eeef9cbb56afbd02335542360b16"
PV = "1.0"
S = "${WORKDIR}/ceres-cmake"
inherit cmake pkgconfig
# Specify any options you want to pass to cmake using EXTRA_OECMAKE:
EXTRA_OECMAKE = ""
现在我看到下载已完成,但在运行 bitbake ceres 命令时,我收到一条错误消息,指出无法找到 CMakelists.txt,而它显然位于 tar.gz 文件中。我查看了其他似乎有效的食谱,并认为 do_unpack 步骤并不是失败的步骤。控制台的输出是:
Loading cache...done.
Loaded 2790 entries from dependency cache.
Parsing recipes...done.
Parsing of 2225 .bb files complete (2219 cached, 6 parsed). 2794 targets, 109 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.30.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "intel-aero"
DISTRO = "poky-aero"
DISTRO_VERSION = "1.4.0-dev"
TUNE_FEATURES = "m64 corei7"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "HEAD:cca8dd15c8096626052f6d8d25ff1e9a606104a3"
meta-qt4 = "HEAD:fc9b050569e94b5176bed28b69ef28514e4e4553"
meta-qt5 = "HEAD:9aa870eecf6dc7a87678393bd55b97e21033ab48"
meta-uav = "HEAD:0f9395139b6a3c3f0f2c18a6a87f4048d0ca1a4f"
meta-ros = "HEAD:4258013ec33f5ed2b0c9be12fb5902fe918fe98b"
meta-intel-realsense = "HEAD:82e9dbfd8783292f42f4a6fcc7bd5b8a6b1c567a"
meta-intel-aero = "HEAD:1d7e341ff35aa903c37491f94677bdacc9427f6e"
meta-oe
meta-python
meta-networking = "HEAD:55c8a76da5dc099a7bc3838495c672140cedb78e"
meta-cmu-rasl = "master:39e39bf41e915323bf7cb70cad50e67cb8b1b90e"
meta-dense-visual-tracking = "HEAD:cca8dd15c8096626052f6d8d25ff1e9a606104a3"
meta-intel = "HEAD:1f8dd1b00ce9c72d73583c405ec392690d9b08b7"
NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Running setscene task 184 of 202 (/home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_populate_lic_setscene)
NOTE: recipe ceres-1.0-r0: task do_populate_lic_setscene: Started
NOTE: recipe ceres-1.0-r0: task do_populate_lic_setscene: Succeeded
NOTE: Executing RunQueue Tasks
NOTE: Running task 711 of 722 (ID: 4, /home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_fetch)
NOTE: recipe ceres-1.0-r0: task do_fetch: Started
NOTE: recipe ceres-1.0-r0: task do_fetch: Succeeded
NOTE: Running task 712 of 722 (ID: 0, /home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_unpack)
NOTE: recipe ceres-1.0-r0: task do_unpack: Started
NOTE: recipe ceres-1.0-r0: task do_unpack: Succeeded
NOTE: Running task 713 of 722 (ID: 1, /home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_patch)
NOTE: recipe ceres-1.0-r0: task do_patch: Started
NOTE: recipe ceres-1.0-r0: task do_patch: Succeeded
NOTE: Running task 714 of 722 (ID: 5, /home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_generate_toolchain_file)
NOTE: recipe ceres-1.0-r0: task do_generate_toolchain_file: Started
NOTE: recipe ceres-1.0-r0: task do_generate_toolchain_file: Succeeded
NOTE: Running task 716 of 722 (ID: 6, /home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_configure)
NOTE: recipe ceres-1.0-r0: task do_configure: Started
Log data follows:
| DEBUG: Executing python function sysroot_cleansstate
| DEBUG: Python function sysroot_cleansstate finished
| DEBUG: Executing shell function do_configure
| CMake Error: The source directory "/home/thesidjway/rasl_ws/src/intel-aero/poky/build/tmp/work/x86_64-linux/ceres/1.0-r0/ceres-cmake" does not appear to contain CMakeLists.txt.
| Specify --help for usage, or press the help button on the CMake GUI.
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /home/thesidjway/rasl_ws/src/intel-aero/poky/build/tmp/work/x86_64-linux/ceres/1.0-r0/temp/log.do_configure.9002)
NOTE: recipe ceres-1.0-r0: task do_configure: Failed
NOTE: Tasks Summary: Attempted 716 tasks of which 711 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
/home/thesidjway/rasl_ws/src/intel-aero/poky/meta-dense-visual-tracking/recipes-dry/ceres/ceres.bb, do_configure
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
我做了什么愚蠢或错误的事情吗?
答案1
我不是这方面的专家,但如果你查看文件夹:
/home/thesidjway/rasl_ws/src/intel-aero/poky/build/tmp/work/x86_64-linux/ceres/1.0-r0/ceres-cmake
并检查您的 cmake 文件是否存在于该文件夹中。 Yocto 希望您的 cmake 文件存在于 ceres-cmake 文件夹中。