【发布时间】:2020-07-14 05:37:49
【问题描述】:
我正在尝试使用 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 添加到我的 recipe-sysroot 中?这样它就不应该抛出找不到openblas错误?
附言只有当我的 .so 文件存在于 /opt/openblas/lib 路径中时,我才能构建 openblas。否则,如果我尝试将 .so 文件放在 /lib 文件夹中,它会给我一个 Files/directories were installed but not shipped in any package 错误。
【问题讨论】:
标签: cmake yocto bitbake recipe