我正在尝试使用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"
错误:
-- 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
错误。
您可以尝试添加
FILES_${PN} = "${libdir}/libmxnet.so"
到食谱。