无法建立,因为在食谱sysroot中缺少相关性-yocto

问题描述 投票:0回答:1

我正在尝试使用Yocto(Rocko)为我的64位Armv8-A构建mxnet 1.6.0。首先,我从https://downloads.apache.org/incubator/mxnet/1.6.0/下载了mxnet。我将下载的tar保留在其中一层的文件文件夹中。并且我已经将该tar文件包含在我的mxnet.bb文件中,如下所示。

mxnet.bb

SUMMARY = "MXNET Package"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

PN = 'mxnet'
PV = '1.6.0'

DEPENDS = "openblas opencv gtest gperftools"

SRC_URI := " \
    file://apache-mxnet-src-1.6.0-incubating.tar.gz"

SRC_URI[md5sum] = "76802d6b14cd45c27f063b2bba3c9a14"

S := "${WORKDIR}/apache-${PN}-src-${PV}-incubating"

inherit cmake pkgconfig

OECMAKE_GENERATOR = "Unix Makefiles"

EXTRA_OECMAKE += " -DUSE_SSE=OFF \
-DUSE_CUDA=OFF \
-DUSE_OPENCV=ON \
-DUSE_OPENMP=ON \
-DUSE_MKL_IF_AVAILABLE=OFF \
-DUSE_SIGNAL_HANDLER=ON \
-DUSE_LAPACK=OFF"
  • 然后我使用bitbake mnxet命令构建了它。我收到以下错误。

错误:

 -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- CMAKE_CROSSCOMPILING TRUE
| -- CMAKE_HOST_SYSTEM_PROCESSOR x86_64
| -- CMAKE_SYSTEM_PROCESSOR aarch64
| -- CMAKE_SYSTEM_NAME Linux
| -- CMake version '3.14.1' using generator 'Unix Makefiles'
| -- Performing Test SUPPORT_CXX11
| -- Performing Test SUPPORT_CXX11 - Success
| -- Performing Test SUPPORT_CXX0X
| -- Performing Test SUPPORT_CXX0X - Success
| -- Determining F16C support
| -- Performing Test COMPILER_SUPPORT_MF16C
| -- Performing Test COMPILER_SUPPORT_MF16C - Failed
| -- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
| -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
| CMake Error at cmake/Modules/FindOpenBLAS.cmake:82 (MESSAGE):
|   Could not find OpenBLAS
| Call Stack (most recent call first):
|   cmake/ChooseBlas.cmake:42 (find_package)
|   CMakeLists.txt:310 (include)
| 
| 
| -- Configuring incomplete, errors occurred!
  • 我检查了build/tmp/work/aarch64-poky-linux/openblas/0.3.5-r0/image/opt/openblas/lib,发现.so和.a文件。
  • 我注意到build/tmp/work/aarch64-poky-linux/mxnet/1.6.0-r0/recipe-sysroot/lib64,没有libopenblas.so或openblas文件夹。
  • 我还检查了build/tmp/sysroots-components/aarch64/openblas并发现其中只有sysroot-providers,没有opt/openblas/lib或任何opt或lib文件夹(如上所述,我找不到openblas图像文件夹中的文件)。

因此,问题是,如何在mxnet中将openblas添加到我的食谱sysroot中?这样就不会抛出openblas错误?

ps.s。仅当我的.so文件存在于/ opt / openblas / lib路径中时,才能构建openblas。否则,如果我尝试将.so文件放在/ lib文件夹中,则会抛出Files/directories were installed but not shipped in any package错误。

cmake yocto bitbake recipe
1个回答
0
投票

您可以尝试添加

FILES_${PN} = "${libdir}/libmxnet.so"

到食谱。

© www.soinside.com 2019 - 2024. All rights reserved.