twistedfall / opencv-rust

Rust bindings for OpenCV 3 & 4
MIT License
1.86k stars 144 forks source link

Cross compilation build doesn't read version.hpp #552

Closed Kamicosi closed 3 months ago

Kamicosi commented 3 months ago

Operating system: WSL2 Ubuntu 20.04.03 LTS OpenCV4 compilation: manually cross-compiled for arm64 OpenCV version: 4.5.5 rustc version: 1.76.0

I have a manually cross-compiled version of OpenCV already on my system that I've been using for C++ projects. Now that I want to try Rust, I set the environment variables OPENCV_LINK_LIBS, OPENCV_LINK_PATHS, and OPENCV_INCLUDE_PATHS to point to the proper places. However, when I build it seems that opencv2/core/version.hpp is not being found by the build script.

   RUST_BACKTRACE=1 cross build --target aarch64-unknown-linux-gnu -vv

+ cargo metadata --format-version 1 --filter-platform aarch64-unknown-linux-gnu
+ rustc --print sysroot
+ /usr/bin/podman
+ /usr/bin/podman version -f '{{ .Server.Os }},,,{{ .Server.Arch }}'
+ /usr/bin/podman info -f '{{ .Version.OsArch }}'
+ rustup toolchain list
+ rustup target list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu
+ /usr/bin/podman run --userns host -e 'XARGO_HOME=/home/cendo/.xargo' -e 'CARGO_HOME=/home/cendo/.cargo' -e 'CROSS_RUST_SYSROOT=/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu' -e 'CARGO_TARGET_DIR=/target' -e 'CROSS_RUNNER=' -e TERM -e 'USER=cendo' -e 'CROSS_RUSTC_MAJOR_VERSION=1' -e 'CROSS_RUSTC_MINOR_VERSION=76' -e 'CROSS_RUSTC_PATCH_VERSION=0' --name cross-stable-x86_64-unknown-linux-gnu-5f382-07dca489a-aarch64-unknown-linux-gnu-04db2-1710448393771 --rm -v /home/cendo/.xargo:/home/cendo/.xargo:z -v /home/cendo/.cargo:/home/cendo/.cargo:z -v /home/cendo/.cargo/bin -v /home/cendo/larado-rs:/home/cendo/larado-rs:z -v /home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu:z,ro -v /home/cendo/larado-rs/target:/target:z -w /home/cendo/larado-rs -t ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main sh -c 'PATH="$PATH":"/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin" cargo build --target aarch64-unknown-linux-gnu -vv'
warning: unused manifest key: build
       Fresh glob v0.3.1
       Fresh memchr v2.7.1
       Fresh aho-corasick v1.1.2
       Fresh regex-syntax v0.8.2
       Fresh regex-automata v0.4.6
       Fresh clang-sys v1.7.0
       Fresh getrandom v0.2.12
       Fresh clang v2.0.0
       Fresh regex v1.10.3
       Fresh jobserver v0.1.28
       Fresh autocfg v1.1.0
       Fresh dunce v1.0.4
       Fresh scopeguard v1.2.0
       Fresh percent-encoding v2.3.1
       Fresh cfg_aliases v0.1.1
       Fresh opencv-binding-generator v0.84.0
       Fresh jobslot v0.2.16
       Fresh cc v1.0.90
       Fresh libc v0.2.153
       Fresh semver v1.0.22
       Fresh vcpkg v0.2.15
       Fresh pkg-config v0.3.30
       Fresh shlex v1.3.0
       Fresh cfg-if v1.0.0
       Fresh bitflags v2.4.2
       Fresh num-traits v0.2.18
       Fresh once_cell v1.19.0
       Fresh nix v0.28.0
   Compiling opencv v0.88.8
       Fresh circular-buffer v0.1.6
       Fresh configparser v3.0.4
     Running `CARGO=/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=aarch64 CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_FEATURE=neon CARGO_CFG_TARGET_HAS_ATOMIC=128,16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=64 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_FEATURE_ALPHAMAT=1 CARGO_FEATURE_ARUCO=1 CARGO_FEATURE_ARUCO_DETECTOR=1 CARGO_FEATURE_BARCODE=1 CARGO_FEATURE_BGSEGM=1 CARGO_FEATURE_BIOINSPIRED=1 CARGO_FEATURE_CALIB3D=1 CARGO_FEATURE_CCALIB=1 CARGO_FEATURE_CUDAARITHM=1 CARGO_FEATURE_CUDABGSEGM=1 CARGO_FEATURE_CUDACODEC=1 CARGO_FEATURE_CUDAFEATURES2D=1 CARGO_FEATURE_CUDAFILTERS=1 CARGO_FEATURE_CUDAIMGPROC=1 CARGO_FEATURE_CUDAOBJDETECT=1 CARGO_FEATURE_CUDAOPTFLOW=1 CARGO_FEATURE_CUDASTEREO=1 CARGO_FEATURE_CUDAWARPING=1 CARGO_FEATURE_CVV=1 CARGO_FEATURE_DEFAULT=1 CARGO_FEATURE_DNN=1 CARGO_FEATURE_DNN_SUPERRES=1 CARGO_FEATURE_DPM=1 CARGO_FEATURE_FACE=1 CARGO_FEATURE_FEATURES2D=1 CARGO_FEATURE_FLANN=1 CARGO_FEATURE_FREETYPE=1 CARGO_FEATURE_FUZZY=1 CARGO_FEATURE_GAPI=1 CARGO_FEATURE_HDF=1 CARGO_FEATURE_HFS=1 CARGO_FEATURE_HIGHGUI=1 CARGO_FEATURE_IMGCODECS=1 CARGO_FEATURE_IMGPROC=1 CARGO_FEATURE_IMG_HASH=1 CARGO_FEATURE_INTENSITY_TRANSFORM=1 CARGO_FEATURE_LINE_DESCRIPTOR=1 CARGO_FEATURE_MCC=1 CARGO_FEATURE_ML=1 CARGO_FEATURE_OBJDETECT=1 CARGO_FEATURE_OPTFLOW=1 CARGO_FEATURE_OVIS=1 CARGO_FEATURE_PHASE_UNWRAPPING=1 CARGO_FEATURE_PHOTO=1 CARGO_FEATURE_PLOT=1 CARGO_FEATURE_QUALITY=1 CARGO_FEATURE_RAPID=1 CARGO_FEATURE_RGBD=1 CARGO_FEATURE_SALIENCY=1 CARGO_FEATURE_SFM=1 CARGO_FEATURE_SHAPE=1 CARGO_FEATURE_STEREO=1 CARGO_FEATURE_STITCHING=1 CARGO_FEATURE_STRUCTURED_LIGHT=1 CARGO_FEATURE_SUPERRES=1 CARGO_FEATURE_SURFACE_MATCHING=1 CARGO_FEATURE_TEXT=1 CARGO_FEATURE_TRACKING=1 CARGO_FEATURE_VIDEO=1 CARGO_FEATURE_VIDEOIO=1 CARGO_FEATURE_VIDEOSTAB=1 CARGO_FEATURE_VIZ=1 CARGO_FEATURE_WECHAT_QRCODE=1 CARGO_FEATURE_XFEATURES2D=1 CARGO_FEATURE_XIMGPROC=1 CARGO_FEATURE_XOBJDETECT=1 CARGO_FEATURE_XPHOTO=1 CARGO_MANIFEST_DIR=/home/cendo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/opencv-0.88.8 CARGO_PKG_AUTHORS='Pro <twisted.fall@gmail.com>:Mathieu Poumeyrol <kali@zoy.org>' CARGO_PKG_DESCRIPTION='Rust bindings for OpenCV' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=opencv CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/twistedfall/opencv-rust' CARGO_PKG_RUST_VERSION=1.66 CARGO_PKG_VERSION=0.88.8 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=88 CARGO_PKG_VERSION_PATCH=8 CARGO_PKG_VERSION_PRE='' DEBUG=true HOST=x86_64-unknown-linux-gnu LD_LIBRARY_PATH='/target/debug/deps:/target/debug:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib' NUM_JOBS=20 OPENCV_INCLUDE_PATHS=/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/ OPENCV_LINK_LIBS=opencv_core,opencv_imgproc,opencv_highgui OPENCV_LINK_PATHS=/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/lib/aarch64-unknown-linux-gnu/8.5.0/ OPT_LEVEL=0 OUT_DIR=/target/aarch64-unknown-linux-gnu/debug/build/opencv-2da9db616a1e80bf/out PROFILE=debug RUSTC=rustc RUSTC_LINKER=aarch64-linux-gnu-gcc RUSTDOC=rustdoc TARGET=aarch64-unknown-linux-gnu /target/debug/build/opencv-892555afc43fb334/build-script-build`
       Fresh ctrlc v3.4.4
[opencv 0.88.8] === Crate version: Some("0.88.8")
[opencv 0.88.8] === Environment configuration:
[opencv 0.88.8] ===   OPENCV_PACKAGE_NAME = None
[opencv 0.88.8] ===   OPENCV_PKGCONFIG_NAME = None
[opencv 0.88.8] ===   OPENCV_CMAKE_NAME = None
[opencv 0.88.8] ===   OPENCV_CMAKE_BIN = None
[opencv 0.88.8] ===   OPENCV_VCPKG_NAME = None
[opencv 0.88.8] ===   OPENCV_LINK_LIBS = Some("opencv_core,opencv_imgproc,opencv_highgui")
[opencv 0.88.8] ===   OPENCV_LINK_PATHS = Some("/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/lib/aarch64-unknown-linux-gnu/8.5.0/")
[opencv 0.88.8] ===   OPENCV_INCLUDE_PATHS = Some("/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/")
[opencv 0.88.8] ===   OPENCV_DISABLE_PROBES = None
[opencv 0.88.8] ===   OPENCV_MSVC_CRT = None
[opencv 0.88.8] ===   CMAKE_PREFIX_PATH = None
[opencv 0.88.8] ===   OpenCV_DIR = None
[opencv 0.88.8] ===   PKG_CONFIG_PATH = Some("/usr/lib/aarch64-linux-gnu/pkgconfig/:")
[opencv 0.88.8] ===   VCPKG_ROOT = None
[opencv 0.88.8] ===   VCPKGRS_DYNAMIC = None
[opencv 0.88.8] ===   VCPKGRS_TRIPLET = None
[opencv 0.88.8] ===   OCVRS_DOCS_GENERATE_DIR = None
[opencv 0.88.8] ===   DOCS_RS = None
[opencv 0.88.8] ===   PATH = Some("/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin")
[opencv 0.88.8] === Enabled features:
[opencv 0.88.8] ===   ALPHAMAT
[opencv 0.88.8] ===   ARUCO
[opencv 0.88.8] ===   ARUCO_DETECTOR
[opencv 0.88.8] ===   BARCODE
[opencv 0.88.8] ===   BGSEGM
[opencv 0.88.8] ===   BIOINSPIRED
[opencv 0.88.8] ===   CALIB3D
[opencv 0.88.8] ===   CCALIB
[opencv 0.88.8] ===   CUDAARITHM
[opencv 0.88.8] ===   CUDABGSEGM
[opencv 0.88.8] ===   CUDACODEC
[opencv 0.88.8] ===   CUDAFEATURES2D
[opencv 0.88.8] ===   CUDAFILTERS
[opencv 0.88.8] ===   CUDAIMGPROC
[opencv 0.88.8] ===   CUDAOBJDETECT
[opencv 0.88.8] ===   CUDAOPTFLOW
[opencv 0.88.8] ===   CUDASTEREO
[opencv 0.88.8] ===   CUDAWARPING
[opencv 0.88.8] ===   CVV
[opencv 0.88.8] ===   DEFAULT
[opencv 0.88.8] ===   DNN
[opencv 0.88.8] ===   DNN_SUPERRES
[opencv 0.88.8] ===   DPM
[opencv 0.88.8] ===   FACE
[opencv 0.88.8] ===   FEATURES2D
[opencv 0.88.8] ===   FLANN
[opencv 0.88.8] ===   FREETYPE
[opencv 0.88.8] ===   FUZZY
[opencv 0.88.8] ===   GAPI
[opencv 0.88.8] ===   HDF
[opencv 0.88.8] ===   HFS
[opencv 0.88.8] ===   HIGHGUI
[opencv 0.88.8] ===   IMGCODECS
[opencv 0.88.8] ===   IMGPROC
[opencv 0.88.8] ===   IMG_HASH
[opencv 0.88.8] ===   INTENSITY_TRANSFORM
[opencv 0.88.8] ===   LINE_DESCRIPTOR
[opencv 0.88.8] ===   MCC
[opencv 0.88.8] ===   ML
[opencv 0.88.8] ===   OBJDETECT
[opencv 0.88.8] ===   OPTFLOW
[opencv 0.88.8] ===   OVIS
[opencv 0.88.8] ===   PHASE_UNWRAPPING
[opencv 0.88.8] ===   PHOTO
[opencv 0.88.8] ===   PLOT
[opencv 0.88.8] ===   QUALITY
[opencv 0.88.8] ===   RAPID
[opencv 0.88.8] ===   RGBD
[opencv 0.88.8] ===   SALIENCY
[opencv 0.88.8] ===   SFM
[opencv 0.88.8] ===   SHAPE
[opencv 0.88.8] ===   STEREO
[opencv 0.88.8] ===   STITCHING
[opencv 0.88.8] ===   STRUCTURED_LIGHT
[opencv 0.88.8] ===   SUPERRES
[opencv 0.88.8] ===   SURFACE_MATCHING
[opencv 0.88.8] ===   TEXT
[opencv 0.88.8] ===   TRACKING
[opencv 0.88.8] ===   VIDEO
[opencv 0.88.8] ===   VIDEOIO
[opencv 0.88.8] ===   VIDEOSTAB
[opencv 0.88.8] ===   VIZ
[opencv 0.88.8] ===   WECHAT_QRCODE
[opencv 0.88.8] ===   XFEATURES2D
[opencv 0.88.8] ===   XIMGPROC
[opencv 0.88.8] ===   XOBJDETECT
[opencv 0.88.8] ===   XPHOTO
[opencv 0.88.8] === Detected probe priority based on environment vars: pkg_config: true, cmake: false, vcpkg: false
[opencv 0.88.8] === Probing the OpenCV library in the following order: environment, pkg_config, cmake, vcpkg_cmake, vcpkg
[opencv 0.88.8] === Configuring OpenCV library from the environment:
[opencv 0.88.8] ===   include_paths: /home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/
[opencv 0.88.8] ===   link_paths: /home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/lib/aarch64-unknown-linux-gnu/8.5.0/
[opencv 0.88.8] ===   link_libs: opencv_core,opencv_imgproc,opencv_highgui
[opencv 0.88.8] === Successfully probed using: environment
[opencv 0.88.8] === OpenCV library configuration: Library {
[opencv 0.88.8]     include_paths: [
[opencv 0.88.8]         "/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/",
[opencv 0.88.8]     ],
[opencv 0.88.8]     version: Version {
[opencv 0.88.8]         major: 0,
[opencv 0.88.8]         minor: 0,
[opencv 0.88.8]         patch: 0,
[opencv 0.88.8]     },
[opencv 0.88.8]     cargo_metadata: [
[opencv 0.88.8]         "cargo:rustc-link-search=/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/lib/aarch64-unknown-linux-gnu/8.5.0/",
[opencv 0.88.8]         "cargo:rustc-link-lib=opencv_core",
[opencv 0.88.8]         "cargo:rustc-link-lib=opencv_imgproc",
[opencv 0.88.8]         "cargo:rustc-link-lib=opencv_highgui",
[opencv 0.88.8]     ],
[opencv 0.88.8] }
[opencv 0.88.8] thread 'main' panicked at /home/cendo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/opencv-0.88.8/build.rs:350:9:
[opencv 0.88.8] Unsupported OpenCV version: 0.0.0, must be from 3.2, 3.4 or 4.x branch
[opencv 0.88.8] note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: failed to run custom build command for `opencv v0.88.8`

The directory that OPENCV_INCLUDE_PATHS is pointing to has the correct header files.

ls /home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/
opencv2
ls /home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/opencv2/
calib3d      core.hpp    dnn.hpp         flann      gapi.hpp     imgcodecs      imgproc.hpp  objdetect      opencv_modules.hpp  stitching      video.hpp
calib3d.hpp  cvconfig.h  features2d      flann.hpp  highgui      imgcodecs.hpp  ml           objdetect.hpp  photo               stitching.hpp  videoio
core         dnn         features2d.hpp  gapi       highgui.hpp  imgproc        ml.hpp       opencv.hpp     photo.hpp           video          videoio.hpp

version.hpp is in the correct location.

cat /home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/opencv2/core/version.hpp
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.

#ifndef OPENCV_VERSION_HPP
#define OPENCV_VERSION_HPP

#define CV_VERSION_MAJOR    4
#define CV_VERSION_MINOR    8
#define CV_VERSION_REVISION 0
#define CV_VERSION_STATUS   "-dev"

#define CVAUX_STR_EXP(__A)  #__A
#define CVAUX_STR(__A)      CVAUX_STR_EXP(__A)

#define CVAUX_STRW_EXP(__A)  L ## #__A
#define CVAUX_STRW(__A)      CVAUX_STRW_EXP(__A)

#define CV_VERSION          CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS

/* old  style version constants*/
#define CV_MAJOR_VERSION    CV_VERSION_MAJOR
#define CV_MINOR_VERSION    CV_VERSION_MINOR
#define CV_SUBMINOR_VERSION CV_VERSION_REVISION

#endif // OPENCV_VERSION_HPP

For what other reason would version.hpp not be able to be read? I have OPENCV_INCLUDE_PATHS pointing to /home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/, from there you can access version.hpp from the standard path opencv2/core/version.hpp.

Kamicosi commented 3 months ago

Update: I gave up on trying to use my already cross-compiled libraries and tried to link them by downloading opencv in cross. Here is my Cross.toml:

[target.aarch64-unknown-linux-gnu]
pre-build = [
    "dpkg --add-architecture $CROSS_DEB_ARCH",
    "apt update",
    "apt install --assume-yes aptitude",
    "DEBIAN_FRONTEND=noninteractive aptitude --assume-yes install clang-10:arm64 libclang1-10:arm64 libclang-10-dev:arm64 libopencv-dev:arm64",
]

The build keeps failing to find libclang-10.so.1 even though I've tried installing every variant of clang-10 possible: error while loading shared libraries: libclang-10.so.1: cannot open shared object file: No such file or directory.

+ cargo metadata --format-version 1 --filter-platform aarch64-unknown-linux-gnu
+ rustc --print sysroot
+ /usr/bin/docker
+ /usr/bin/docker version -f '{{ .Server.Os }},,,{{ .Server.Arch }}'
+ /usr/bin/docker info -f {{.SecurityOptions}}
+ rustup toolchain list
+ rustup target list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu
+ /usr/bin/docker buildx build --progress auto --build-arg 'VERBOSE=1' --label 'org.cross-rs.for-cross-target=aarch64-unknown-linux-gnu' --label 'org.cross-rs.runs-with=x86_64-unknown-linux-gnu' --label 'org.cross-rs.workspace_root=/home/cendo/larado-rs' --tag localhost/cross-rs/cross-custom-larado-rs:aarch64-unknown-linux-gnu-04db2-pre-build --build-arg 'CROSS_CMD=dpkg --add-architecture $CROSS_DEB_ARCH
apt update
apt install --assume-yes aptitude
DEBIAN_FRONTEND=noninteractive aptitude --assume-yes install clang-10:arm64 libclang1-10:arm64 libclang-10-dev:arm64 libopencv-dev:arm64' --build-arg 'CROSS_DEB_ARCH=arm64' --file /home/cendo/larado-rs/target/aarch64-unknown-linux-gnu/Dockerfile.aarch64-unknown-linux-gnu-custom --output 'type=docker' /home/cendo/larado-rs
[+] Building 0.4s (4/5)                                                                                                                                                                             docker:default
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                                                                               0.0s
[+] Building 0.6s (4/5)                                                                                                                                                                             docker:default
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B
...
<repeats like this for a couple hundred lines>
...
[+] Building 58.5s (5/6)                                                                                                                                                                            docker:default
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                                                                               0.0s
[+] Building 58.5s (6/6) FINISHED                                                                                                                                                                   docker:default
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                                                                               0.0s
 => [internal] load build definition from Dockerfile.aarch64-unknown-linux-gnu-custom                                                                                                                         0.0s
 => => transferring dockerfile: 247B                                                                                                                                                                          0.0s
 => [internal] load metadata for ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main                                                                                                                              0.3s
 => CACHED [1/2] FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main@sha256:97720d723dbe7fa7221d366148a3f5dde14708c5352809b6cc843d3d4f21d03d                                                                 0.0s
 => [2/2] RUN eval "dpkg --add-architecture $CROSS_DEB_ARCHl clang-10:arm64 libclang1-10:arm64 lib  56.4s
apt updateing to image                                                                                                                                                                                        1.8s
apt install --assume-yes aptitude                                                                                                                                                                             1.8s
DEBIAN_FRONTEND=noninteractive aptitude --assume-yes install clang-10:arm64 libclang1-10:arm64 lib  56.4s
 => exporting to image                                                                                                                                                                                        1.8s
 => => exporting layers                                                                                                                                                                                       1.8s
 => => writing image sha256:3d9484b937902d2b2f65a48599f0177965bb75442ab7ea8c89ce5268b4304496                                                                                                                  0.0s
 => => naming to localhost/cross-rs/cross-custom-larado-rs:aarch64-unknown-linux-gnu-04db2-pre-build                                                                                                          0.0s
+ /usr/bin/docker run --userns host -e 'XARGO_HOME=/home/cendo/.xargo' -e 'CARGO_HOME=/home/cendo/.cargo' -e 'CROSS_RUST_SYSROOT=/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu' -e 'CARGO_TARGET_DIR=/target' -e 'CROSS_RUNNER=' -e TERM -e 'USER=cendo' -e 'CROSS_RUSTC_MAJOR_VERSION=1' -e 'CROSS_RUSTC_MINOR_VERSION=76' -e 'CROSS_RUSTC_PATCH_VERSION=0' --name cross-stable-x86_64-unknown-linux-gnu-5f382-07dca489a-aarch64-unknown-linux-gnu-04db2-1710531606284 --rm --user 1000:1000 -v /home/cendo/.xargo:/home/cendo/.xargo:z -v /home/cendo/.cargo:/home/cendo/.cargo:z -v /home/cendo/.cargo/bin -v /home/cendo/larado-rs:/home/cendo/larado-rs:z -v /home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu:z,ro -v /home/cendo/larado-rs/target:/target:z -w /home/cendo/larado-rs -t localhost/cross-rs/cross-custom-larado-rs:aarch64-unknown-linux-gnu-04db2-pre-build sh -c 'PATH="$PATH":"/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin" cargo build --target aarch64-unknown-linux-gnu -vv'
warning: unused manifest key: build
       Fresh glob v0.3.1
       Fresh memchr v2.7.1
       Fresh aho-corasick v1.1.2
       Fresh regex-syntax v0.8.2
       Fresh jobserver v0.1.28
       Fresh autocfg v1.1.0
       Fresh dunce v1.0.4
       Fresh cfg_aliases v0.1.1
       Fresh scopeguard v1.2.0
       Fresh percent-encoding v2.3.1
       Fresh shlex v1.3.0
       Fresh vcpkg v0.2.15
       Fresh pkg-config v0.3.30
       Fresh bitflags v2.4.2
       Fresh cfg-if v1.0.0
       Fresh once_cell v1.19.0
       Fresh regex-automata v0.4.6
       Fresh getrandom v0.2.12
       Fresh cc v1.0.90
       Dirty larado-rs v0.1.0 (/home/cendo/larado-rs): the precalculated components changed
   Compiling larado-rs v0.1.0 (/home/cendo/larado-rs)
       Fresh configparser v3.0.4
       Fresh circular-buffer v0.1.6
       Fresh clang-sys v1.7.0
       Fresh regex v1.10.3
       Fresh semver v1.0.22
       Fresh jobslot v0.2.16
       Fresh libc v0.2.153
     Running `CARGO=/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=aarch64 CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_FEATURE=neon CARGO_CFG_TARGET_HAS_ATOMIC=128,16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=64 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_MANIFEST_DIR=/home/cendo/larado-rs CARGO_PKG_AUTHORS='' CARGO_PKG_DESCRIPTION='' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=larado-rs CARGO_PKG_README='' CARGO_PKG_REPOSITORY='' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' DEBUG=true HOST=x86_64-unknown-linux-gnu LD_LIBRARY_PATH='/target/debug/deps:/target/debug:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib' NUM_JOBS=20 OPT_LEVEL=0 OUT_DIR=/target/aarch64-unknown-linux-gnu/debug/build/larado-rs-3fb8cd8087980aa2/out PROFILE=debug RUSTC=rustc RUSTC_LINKER=aarch64-linux-gnu-gcc RUSTDOC=rustdoc TARGET=aarch64-unknown-linux-gnu /target/debug/build/larado-rs-fa865c67b7ef6c9e/build-script-build`
       Fresh clang v2.0.0
       Fresh nix v0.28.0
       Fresh num-traits v0.2.18
       Fresh opencv-binding-generator v0.84.0
       Fresh ctrlc v3.4.4
   Compiling opencv v0.88.8
     Running `CARGO=/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=aarch64 CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_FEATURE=neon CARGO_CFG_TARGET_HAS_ATOMIC=128,16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=64 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_FEATURE_ALPHAMAT=1 CARGO_FEATURE_ARUCO=1 CARGO_FEATURE_ARUCO_DETECTOR=1 CARGO_FEATURE_BARCODE=1 CARGO_FEATURE_BGSEGM=1 CARGO_FEATURE_BIOINSPIRED=1 CARGO_FEATURE_CALIB3D=1 CARGO_FEATURE_CCALIB=1 CARGO_FEATURE_CUDAARITHM=1 CARGO_FEATURE_CUDABGSEGM=1 CARGO_FEATURE_CUDACODEC=1 CARGO_FEATURE_CUDAFEATURES2D=1 CARGO_FEATURE_CUDAFILTERS=1 CARGO_FEATURE_CUDAIMGPROC=1 CARGO_FEATURE_CUDAOBJDETECT=1 CARGO_FEATURE_CUDAOPTFLOW=1 CARGO_FEATURE_CUDASTEREO=1 CARGO_FEATURE_CUDAWARPING=1 CARGO_FEATURE_CVV=1 CARGO_FEATURE_DEFAULT=1 CARGO_FEATURE_DNN=1 CARGO_FEATURE_DNN_SUPERRES=1 CARGO_FEATURE_DPM=1 CARGO_FEATURE_FACE=1 CARGO_FEATURE_FEATURES2D=1 CARGO_FEATURE_FLANN=1 CARGO_FEATURE_FREETYPE=1 CARGO_FEATURE_FUZZY=1 CARGO_FEATURE_GAPI=1 CARGO_FEATURE_HDF=1 CARGO_FEATURE_HFS=1 CARGO_FEATURE_HIGHGUI=1 CARGO_FEATURE_IMGCODECS=1 CARGO_FEATURE_IMGPROC=1 CARGO_FEATURE_IMG_HASH=1 CARGO_FEATURE_INTENSITY_TRANSFORM=1 CARGO_FEATURE_LINE_DESCRIPTOR=1 CARGO_FEATURE_MCC=1 CARGO_FEATURE_ML=1 CARGO_FEATURE_OBJDETECT=1 CARGO_FEATURE_OPTFLOW=1 CARGO_FEATURE_OVIS=1 CARGO_FEATURE_PHASE_UNWRAPPING=1 CARGO_FEATURE_PHOTO=1 CARGO_FEATURE_PLOT=1 CARGO_FEATURE_QUALITY=1 CARGO_FEATURE_RAPID=1 CARGO_FEATURE_RGBD=1 CARGO_FEATURE_SALIENCY=1 CARGO_FEATURE_SFM=1 CARGO_FEATURE_SHAPE=1 CARGO_FEATURE_STEREO=1 CARGO_FEATURE_STITCHING=1 CARGO_FEATURE_STRUCTURED_LIGHT=1 CARGO_FEATURE_SUPERRES=1 CARGO_FEATURE_SURFACE_MATCHING=1 CARGO_FEATURE_TEXT=1 CARGO_FEATURE_TRACKING=1 CARGO_FEATURE_VIDEO=1 CARGO_FEATURE_VIDEOIO=1 CARGO_FEATURE_VIDEOSTAB=1 CARGO_FEATURE_VIZ=1 CARGO_FEATURE_WECHAT_QRCODE=1 CARGO_FEATURE_XFEATURES2D=1 CARGO_FEATURE_XIMGPROC=1 CARGO_FEATURE_XOBJDETECT=1 CARGO_FEATURE_XPHOTO=1 CARGO_MANIFEST_DIR=/home/cendo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/opencv-0.88.8 CARGO_PKG_AUTHORS='Pro <twisted.fall@gmail.com>:Mathieu Poumeyrol <kali@zoy.org>' CARGO_PKG_DESCRIPTION='Rust bindings for OpenCV' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=opencv CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/twistedfall/opencv-rust' CARGO_PKG_RUST_VERSION=1.66 CARGO_PKG_VERSION=0.88.8 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=88 CARGO_PKG_VERSION_PATCH=8 CARGO_PKG_VERSION_PRE='' DEBUG=true HOST=x86_64-unknown-linux-gnu LD_LIBRARY_PATH='/target/debug/deps:/target/debug:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib' NUM_JOBS=20 OPT_LEVEL=0 OUT_DIR=/target/aarch64-unknown-linux-gnu/debug/build/opencv-2da9db616a1e80bf/out PROFILE=debug RUSTC=rustc RUSTC_LINKER=aarch64-linux-gnu-gcc RUSTDOC=rustdoc TARGET=aarch64-unknown-linux-gnu /target/debug/build/opencv-892555afc43fb334/build-script-build`
[larado-rs 0.1.0] cargo:rustc-link-lib=metavision-c
[larado-rs 0.1.0] cargo:rustc-link-lib=metavision_sdk_core
[larado-rs 0.1.0] cargo:rustc-link-lib=metavision_sdk_base
[larado-rs 0.1.0] cargo:rustc-link-lib=metavision_sdk_driver
[larado-rs 0.1.0] cargo:rustc-link-lib=metavision_hal
[larado-rs 0.1.0] cargo:rustc-link-lib=metavision_hal_discovery
[larado-rs 0.1.0] cargo:rustc-link-lib=boost_filesystem
[opencv 0.88.8] /target/debug/build/opencv-892555afc43fb334/build-script-build: error while loading shared libraries: libclang-10.so.1: cannot open shared object file: No such file or directory
error: failed to run custom build command for `opencv v0.88.8`

Caused by:
  process didn't exit successfully: `CARGO=/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=aarch64 CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_FEATURE=neon CARGO_CFG_TARGET_HAS_ATOMIC=128,16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=64 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_FEATURE_ALPHAMAT=1 CARGO_FEATURE_ARUCO=1 CARGO_FEATURE_ARUCO_DETECTOR=1 CARGO_FEATURE_BARCODE=1 CARGO_FEATURE_BGSEGM=1 CARGO_FEATURE_BIOINSPIRED=1 CARGO_FEATURE_CALIB3D=1 CARGO_FEATURE_CCALIB=1 CARGO_FEATURE_CUDAARITHM=1 CARGO_FEATURE_CUDABGSEGM=1 CARGO_FEATURE_CUDACODEC=1 CARGO_FEATURE_CUDAFEATURES2D=1 CARGO_FEATURE_CUDAFILTERS=1 CARGO_FEATURE_CUDAIMGPROC=1 CARGO_FEATURE_CUDAOBJDETECT=1 CARGO_FEATURE_CUDAOPTFLOW=1 CARGO_FEATURE_CUDASTEREO=1 CARGO_FEATURE_CUDAWARPING=1 CARGO_FEATURE_CVV=1 CARGO_FEATURE_DEFAULT=1 CARGO_FEATURE_DNN=1 CARGO_FEATURE_DNN_SUPERRES=1 CARGO_FEATURE_DPM=1 CARGO_FEATURE_FACE=1 CARGO_FEATURE_FEATURES2D=1 CARGO_FEATURE_FLANN=1 CARGO_FEATURE_FREETYPE=1 CARGO_FEATURE_FUZZY=1 CARGO_FEATURE_GAPI=1 CARGO_FEATURE_HDF=1 CARGO_FEATURE_HFS=1 CARGO_FEATURE_HIGHGUI=1 CARGO_FEATURE_IMGCODECS=1 CARGO_FEATURE_IMGPROC=1 CARGO_FEATURE_IMG_HASH=1 CARGO_FEATURE_INTENSITY_TRANSFORM=1 CARGO_FEATURE_LINE_DESCRIPTOR=1 CARGO_FEATURE_MCC=1 CARGO_FEATURE_ML=1 CARGO_FEATURE_OBJDETECT=1 CARGO_FEATURE_OPTFLOW=1 CARGO_FEATURE_OVIS=1 CARGO_FEATURE_PHASE_UNWRAPPING=1 CARGO_FEATURE_PHOTO=1 CARGO_FEATURE_PLOT=1 CARGO_FEATURE_QUALITY=1 CARGO_FEATURE_RAPID=1 CARGO_FEATURE_RGBD=1 CARGO_FEATURE_SALIENCY=1 CARGO_FEATURE_SFM=1 CARGO_FEATURE_SHAPE=1 CARGO_FEATURE_STEREO=1 CARGO_FEATURE_STITCHING=1 CARGO_FEATURE_STRUCTURED_LIGHT=1 CARGO_FEATURE_SUPERRES=1 CARGO_FEATURE_SURFACE_MATCHING=1 CARGO_FEATURE_TEXT=1 CARGO_FEATURE_TRACKING=1 CARGO_FEATURE_VIDEO=1 CARGO_FEATURE_VIDEOIO=1 CARGO_FEATURE_VIDEOSTAB=1 CARGO_FEATURE_VIZ=1 CARGO_FEATURE_WECHAT_QRCODE=1 CARGO_FEATURE_XFEATURES2D=1 CARGO_FEATURE_XIMGPROC=1 CARGO_FEATURE_XOBJDETECT=1 CARGO_FEATURE_XPHOTO=1 CARGO_MANIFEST_DIR=/home/cendo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/opencv-0.88.8 CARGO_PKG_AUTHORS='Pro <twisted.fall@gmail.com>:Mathieu Poumeyrol <kali@zoy.org>' CARGO_PKG_DESCRIPTION='Rust bindings for OpenCV' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=opencv CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/twistedfall/opencv-rust' CARGO_PKG_RUST_VERSION=1.66 CARGO_PKG_VERSION=0.88.8 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=88 CARGO_PKG_VERSION_PATCH=8 CARGO_PKG_VERSION_PRE='' DEBUG=true HOST=x86_64-unknown-linux-gnu LD_LIBRARY_PATH='/target/debug/deps:/target/debug:/home/cendo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib' NUM_JOBS=20 OPT_LEVEL=0 OUT_DIR=/target/aarch64-unknown-linux-gnu/debug/build/opencv-2da9db616a1e80bf/out PROFILE=debug RUSTC=rustc RUSTC_LINKER=aarch64-linux-gnu-gcc RUSTDOC=rustdoc TARGET=aarch64-unknown-linux-gnu /target/debug/build/opencv-892555afc43fb334/build-script-build` (exit status: 127)
  --- stderr
  /target/debug/build/opencv-892555afc43fb334/build-script-build: error while loading shared libraries: libclang-10.so.1: cannot open shared object file: No such file or directory
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu

I've also experimented with writing the following Dockerfile based on some other issues I've been reading and compiling OpenCV from source.

FROM ubuntu:20.04

RUN apt update
# requirements of bindgen, see https://rust-lang.github.io/rust-bindgen/requirements.html
RUN DEBIAN_FRONTEND=noninteractive apt install -y llvm-dev libclang-dev clang 

# cross compile opencv, see https://docs.opencv.org/4.x/d0/d76/tutorial_arm_crosscompile_with_cmake.html
RUN DEBIAN_FRONTEND=noninteractive apt install -y gcc-aarch64-linux-gnu git build-essential cmake
RUN git clone --depth 1 --branch '4.5.5' https://github.com/opencv/opencv.git && \
    cd opencv/platforms/linux && \
    mkdir build && \
    cd build && \
    cmake -DCMAKE_TOOLCHAIN_FILE=../aarch64-gnu.toolchain.cmake ../../.. && \
    make && \
    make install

ENV CMAKE_PREFIX_PATH="/opencv/platforms/linux/build/install"

But this gives me the ambiguous error Configuring incomplete, errors occurred!.

+ cargo metadata --format-version 1 --filter-platform aarch64-unknown-linux-gnu
+ rustc --print sysroot
+ /usr/bin/docker
+ /usr/bin/docker version -f '{{ .Server.Os }},,,{{ .Server.Arch }}'
+ /usr/bin/docker info -f {{.SecurityOptions}}
+ rustup toolchain list
+ rustup target list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu
+ /usr/bin/docker buildx build --progress auto --build-arg 'VERBOSE=1' --label 'org.cross-rs.for-cross-target=aarch64-unknown-linux-gnu' --label 'org.cross-rs.runs-with=x86_64-unknown-linux-gnu' --label 'org.cross-rs.workspace_root=/home/cendo/larado-rs' --tag localhost/cross-rs/cross-custom-larado-rs:aarch64-unknown-linux-gnu-04db2 --build-arg 'CROSS_DEB_ARCH=arm64' --build-arg 'CROSS_BASE_IMAGE=ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main' --file ./aarch64.Dockerfile --output 'type=docker' /home/cendo/larado-rs
[+] Building 17.3s (8/8) FINISHED                                                                                                                                                                   docker:default
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                                                                               0.0s
 => [internal] load build definition from aarch64.Dockerfile                                                                                                                                                  0.0s
 => => transferring dockerfile: 4.51kB                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/ubuntu:20.04                                                                                                                                               0.3s
 => [1/5] FROM docker.io/library/ubuntu:20.04@sha256:80ef4a44043dec4490506e6cc4289eeda2d106a70148b74b5ae91ee670e9c35d                                                                                         0.0s
 => CACHED [2/5] RUN apt update                                                                                                                                                                               0.0s
 => CACHED [3/5] RUN DEBIAN_FRONTEND=noninteractive apt install -y llvm-dev libclang-dev clang                                                                                                                0.0s
 => CACHED [4/5] RUN DEBIAN_FRONTEND=noninteractive apt install -y gcc-aarch64-linux-gnu git build-essential cmake                                                                                            0.0s
 => ERROR [5/5] RUN git clone --depth 1 --branch '4.5.5' https://github.com/opencv/opencv.git &&     cd opencv/platforms/linux &&     mkdir build &&     cd build &&     cmake -DCMAKE_TOOLCHAIN_FILE=../aa  16.9s
------
 > [5/5] RUN git clone --depth 1 --branch '4.5.5' https://github.com/opencv/opencv.git &&     cd opencv/platforms/linux &&     mkdir build &&     cd build &&     cmake -DCMAKE_TOOLCHAIN_FILE=../aarch64-gnu.toolchain.cmake ../../.. &&     make &&     make install:
0.245 Cloning into 'opencv'...
6.424 Note: switching to 'dad26339a975b49cfb6c7dbe4bd5276c9dcb36e2'.
6.424
6.424 You are in 'detached HEAD' state. You can look around, make experimental
6.424 changes and commit them, and you can discard any commits you make in this
6.424 state without impacting any branches by switching back to a branch.
6.424
6.424 If you want to create a new branch to retain commits you create, you may
6.424 do so (now or later) by using -c with the switch command. Example:
6.424
6.424   git switch -c <new-branch-name>
6.424
6.424 Or undo this operation with:
6.424
6.424   git switch -
6.424
6.424 Turn off this advice by setting config variable advice.detachedHead to false
6.424
7.141 -- 'Release' build type is used by default. Use CMAKE_BUILD_TYPE to specify build type (Release or Debug)
7.185 -- The CXX compiler identification is GNU 9.4.0
7.212 -- The C compiler identification is GNU 9.4.0
7.215 -- Check for working CXX compiler: /usr/bin/c++
7.257 -- Check for working CXX compiler: /usr/bin/c++ -- works
7.259 -- Detecting CXX compiler ABI info
7.304 -- Detecting CXX compiler ABI info - done
7.311 -- Detecting CXX compile features
7.311 -- Detecting CXX compile features - done
7.313 -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc
7.352 -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works
7.353 -- Detecting C compiler ABI info
7.391 -- Detecting C compiler ABI info - done
7.398 -- Detecting C compile features
7.398 -- Detecting C compile features - done
7.399 -- Detected processor: aarch64
7.893 -- Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version "2.7")
7.902 -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3.2")
7.905 -- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "3.8")
7.913 -- Cannot probe for Python/Numpy support (because we are cross-compiling OpenCV)
7.913 -- If you want to enable Python/Numpy support, set the following variables:
7.913 --   PYTHON2_INCLUDE_PATH
7.913 --   PYTHON2_LIBRARIES (optional on Unix-like systems)
7.913 --   PYTHON2_NUMPY_INCLUDE_DIRS
7.913 --   PYTHON3_INCLUDE_PATH
7.913 --   PYTHON3_LIBRARIES (optional on Unix-like systems)
7.913 --   PYTHON3_NUMPY_INCLUDE_DIRS
7.914 -- Looking for ccache - not found
7.914 -- Performing Test HAVE_CXX_FSIGNED_CHAR
7.955 -- Performing Test HAVE_CXX_FSIGNED_CHAR - Success
7.955 -- Performing Test HAVE_C_FSIGNED_CHAR
7.995 -- Performing Test HAVE_C_FSIGNED_CHAR - Success
7.995 -- Performing Test HAVE_CXX_W
8.038 -- Performing Test HAVE_CXX_W - Success
8.038 -- Performing Test HAVE_C_W
8.075 -- Performing Test HAVE_C_W - Success
8.076 -- Performing Test HAVE_CXX_WALL
8.120 -- Performing Test HAVE_CXX_WALL - Success
8.121 -- Performing Test HAVE_C_WALL
8.160 -- Performing Test HAVE_C_WALL - Success
8.160 -- Performing Test HAVE_CXX_WERROR_RETURN_TYPE
8.202 -- Performing Test HAVE_CXX_WERROR_RETURN_TYPE - Success
8.202 -- Performing Test HAVE_C_WERROR_RETURN_TYPE
8.243 -- Performing Test HAVE_C_WERROR_RETURN_TYPE - Success
8.243 -- Performing Test HAVE_CXX_WERROR_NON_VIRTUAL_DTOR
8.285 -- Performing Test HAVE_CXX_WERROR_NON_VIRTUAL_DTOR - Success
8.285 -- Performing Test HAVE_C_WERROR_NON_VIRTUAL_DTOR
8.322 -- Performing Test HAVE_C_WERROR_NON_VIRTUAL_DTOR - Failed
8.322 -- Performing Test HAVE_CXX_WERROR_ADDRESS
8.365 -- Performing Test HAVE_CXX_WERROR_ADDRESS - Success
8.365 -- Performing Test HAVE_C_WERROR_ADDRESS
8.404 -- Performing Test HAVE_C_WERROR_ADDRESS - Success
8.404 -- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT
8.448 -- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT - Success
8.448 -- Performing Test HAVE_C_WERROR_SEQUENCE_POINT
8.488 -- Performing Test HAVE_C_WERROR_SEQUENCE_POINT - Success
8.488 -- Performing Test HAVE_CXX_WFORMAT
8.531 -- Performing Test HAVE_CXX_WFORMAT - Success
8.531 -- Performing Test HAVE_C_WFORMAT
8.570 -- Performing Test HAVE_C_WFORMAT - Success
8.570 -- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY
8.614 -- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY - Success
8.614 -- Performing Test HAVE_C_WERROR_FORMAT_SECURITY
8.653 -- Performing Test HAVE_C_WERROR_FORMAT_SECURITY - Success
8.653 -- Performing Test HAVE_CXX_WMISSING_DECLARATIONS
8.695 -- Performing Test HAVE_CXX_WMISSING_DECLARATIONS - Success
8.695 -- Performing Test HAVE_C_WMISSING_DECLARATIONS
8.734 -- Performing Test HAVE_C_WMISSING_DECLARATIONS - Success
8.734 -- Performing Test HAVE_CXX_WMISSING_PROTOTYPES
8.776 -- Performing Test HAVE_CXX_WMISSING_PROTOTYPES - Failed
8.776 -- Performing Test HAVE_C_WMISSING_PROTOTYPES
8.814 -- Performing Test HAVE_C_WMISSING_PROTOTYPES - Success
8.814 -- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES
8.857 -- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES - Failed
8.857 -- Performing Test HAVE_C_WSTRICT_PROTOTYPES
8.895 -- Performing Test HAVE_C_WSTRICT_PROTOTYPES - Success
8.895 -- Performing Test HAVE_CXX_WUNDEF
8.937 -- Performing Test HAVE_CXX_WUNDEF - Success
8.937 -- Performing Test HAVE_C_WUNDEF
8.975 -- Performing Test HAVE_C_WUNDEF - Success
8.975 -- Performing Test HAVE_CXX_WINIT_SELF
9.019 -- Performing Test HAVE_CXX_WINIT_SELF - Success
9.019 -- Performing Test HAVE_C_WINIT_SELF
9.058 -- Performing Test HAVE_C_WINIT_SELF - Success
9.058 -- Performing Test HAVE_CXX_WPOINTER_ARITH
9.101 -- Performing Test HAVE_CXX_WPOINTER_ARITH - Success
9.101 -- Performing Test HAVE_C_WPOINTER_ARITH
9.142 -- Performing Test HAVE_C_WPOINTER_ARITH - Success
9.142 -- Performing Test HAVE_CXX_WSHADOW
9.185 -- Performing Test HAVE_CXX_WSHADOW - Success
9.185 -- Performing Test HAVE_C_WSHADOW
9.224 -- Performing Test HAVE_C_WSHADOW - Success
9.224 -- Performing Test HAVE_CXX_WSIGN_PROMO
9.267 -- Performing Test HAVE_CXX_WSIGN_PROMO - Success
9.267 -- Performing Test HAVE_C_WSIGN_PROMO
9.305 -- Performing Test HAVE_C_WSIGN_PROMO - Failed
9.305 -- Performing Test HAVE_CXX_WUNINITIALIZED
9.353 -- Performing Test HAVE_CXX_WUNINITIALIZED - Success
9.353 -- Performing Test HAVE_C_WUNINITIALIZED
9.392 -- Performing Test HAVE_C_WUNINITIALIZED - Success
9.392 -- Performing Test HAVE_CXX_WSUGGEST_OVERRIDE
9.435 -- Performing Test HAVE_CXX_WSUGGEST_OVERRIDE - Success
9.435 -- Performing Test HAVE_C_WSUGGEST_OVERRIDE
9.476 -- Performing Test HAVE_C_WSUGGEST_OVERRIDE - Failed
9.476 -- Performing Test HAVE_CXX_WNO_DELETE_NON_VIRTUAL_DTOR
9.521 -- Performing Test HAVE_CXX_WNO_DELETE_NON_VIRTUAL_DTOR - Success
9.521 -- Performing Test HAVE_C_WNO_DELETE_NON_VIRTUAL_DTOR
9.559 -- Performing Test HAVE_C_WNO_DELETE_NON_VIRTUAL_DTOR - Failed
9.559 -- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
9.602 -- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
9.602 -- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
9.639 -- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
9.639 -- Performing Test HAVE_CXX_WNO_COMMENT
9.681 -- Performing Test HAVE_CXX_WNO_COMMENT - Success
9.681 -- Performing Test HAVE_C_WNO_COMMENT
9.721 -- Performing Test HAVE_C_WNO_COMMENT - Success
9.722 -- Performing Test HAVE_CXX_WIMPLICIT_FALLTHROUGH_3
9.765 -- Performing Test HAVE_CXX_WIMPLICIT_FALLTHROUGH_3 - Success
9.765 -- Performing Test HAVE_C_WIMPLICIT_FALLTHROUGH_3
9.804 -- Performing Test HAVE_C_WIMPLICIT_FALLTHROUGH_3 - Success
9.805 -- Performing Test HAVE_CXX_WNO_STRICT_OVERFLOW
9.850 -- Performing Test HAVE_CXX_WNO_STRICT_OVERFLOW - Success
9.850 -- Performing Test HAVE_C_WNO_STRICT_OVERFLOW
9.888 -- Performing Test HAVE_C_WNO_STRICT_OVERFLOW - Success
9.888 -- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION
9.932 -- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION - Success
9.932 -- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION
9.972 -- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION - Success
9.972 -- Performing Test HAVE_CXX_PTHREAD
10.02 -- Performing Test HAVE_CXX_PTHREAD - Success
10.02 -- Performing Test HAVE_C_PTHREAD
10.05 -- Performing Test HAVE_C_PTHREAD - Success
10.05 -- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER
10.10 -- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER - Success
10.10 -- Performing Test HAVE_C_FOMIT_FRAME_POINTER
10.13 -- Performing Test HAVE_C_FOMIT_FRAME_POINTER - Success
10.13 -- Performing Test HAVE_CXX_FFUNCTION_SECTIONS
10.17 -- Performing Test HAVE_CXX_FFUNCTION_SECTIONS - Success
10.17 -- Performing Test HAVE_C_FFUNCTION_SECTIONS
10.21 -- Performing Test HAVE_C_FFUNCTION_SECTIONS - Success
10.21 -- Performing Test HAVE_CXX_FDATA_SECTIONS
10.26 -- Performing Test HAVE_CXX_FDATA_SECTIONS - Success
10.26 -- Performing Test HAVE_C_FDATA_SECTIONS
10.29 -- Performing Test HAVE_C_FDATA_SECTIONS - Success
10.29 -- Performing Test HAVE_CPU_NEON_SUPPORT (check file: cmake/checks/cpu_neon.cpp)
10.31 -- Performing Test HAVE_CPU_NEON_SUPPORT - Failed
10.31 -- NEON is not supported by C++ compiler
10.31 -- Performing Test HAVE_CPU_FP16_SUPPORT (check file: cmake/checks/cpu_fp16.cpp)
10.33 -- Performing Test HAVE_CPU_FP16_SUPPORT - Failed
10.33 -- FP16 is not supported by C++ compiler
10.33 -- Optimization NEON is not available, skipped
10.33 -- Optimization FP16 is not available, skipped
10.33 CMake Error at cmake/OpenCVCompilerOptimizations.cmake:546 (message):
10.33   Required baseline optimization is not supported: NEON
10.33   (CPU_BASELINE_REQUIRE=;NEON)
10.33 Call Stack (most recent call first):
10.33   cmake/OpenCVCompilerOptions.cmake:320 (include)
10.33   CMakeLists.txt:630 (include)
10.33
10.33
10.33 -- Performing Test HAVE_CPU_BASELINE_FLAGS
10.37 -- Performing Test HAVE_CPU_BASELINE_FLAGS - Success
10.37 -- Performing Test HAVE_CXX_FVISIBILITY_HIDDEN
10.42 -- Performing Test HAVE_CXX_FVISIBILITY_HIDDEN - Success
10.42 -- Performing Test HAVE_C_FVISIBILITY_HIDDEN
10.45 -- Performing Test HAVE_C_FVISIBILITY_HIDDEN - Success
10.45 -- Performing Test HAVE_CXX_FVISIBILITY_INLINES_HIDDEN
10.49 -- Performing Test HAVE_CXX_FVISIBILITY_INLINES_HIDDEN - Success
10.49 -- Performing Test HAVE_C_FVISIBILITY_INLINES_HIDDEN
10.53 -- Performing Test HAVE_C_FVISIBILITY_INLINES_HIDDEN - Failed
10.53 -- Performing Test HAVE_LINK_AS_NEEDED
10.58 -- Performing Test HAVE_LINK_AS_NEEDED - Success
10.58 -- OpenCV disables pkg-config to avoid using of host libraries. Consider using PKG_CONFIG_LIBDIR to specify target SYSROOT
10.58 -- Looking for pthread.h
10.62 -- Looking for pthread.h - found
10.62 -- Looking for posix_memalign
10.65 -- Looking for posix_memalign - found
10.65 -- Looking for malloc.h
10.69 -- Looking for malloc.h - found
10.69 -- Looking for memalign
10.74 -- Looking for memalign - found
10.74 -- Check if the system is big endian
10.74 -- Searching 16 bit integer
10.74 -- Looking for sys/types.h
10.78 -- Looking for sys/types.h - found
10.78 -- Looking for stdint.h
10.81 -- Looking for stdint.h - found
10.81 -- Looking for stddef.h
10.85 -- Looking for stddef.h - found
10.85 -- Check size of unsigned short
10.89 -- Check size of unsigned short - done
10.89 -- Using unsigned short
10.93 -- Check if the system is big endian - little endian
10.93 -- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) (Required is at least version "1.2.3")
10.93 -- Looking for fseeko
10.97 -- Looking for fseeko - found
10.97 -- Looking for unistd.h
11.01 -- Looking for unistd.h - found
11.01 -- Check size of off64_t
11.03 -- Check size of off64_t - failed
11.03 -- Performing Test HAVE_C_WNO_SHORTEN_64_TO_32
11.06 -- Performing Test HAVE_C_WNO_SHORTEN_64_TO_32 - Failed
11.06 -- Performing Test HAVE_C_WNO_ATTRIBUTES
11.10 -- Performing Test HAVE_C_WNO_ATTRIBUTES - Success
11.10 -- Performing Test HAVE_C_WNO_STRICT_PROTOTYPES
11.14 -- Performing Test HAVE_C_WNO_STRICT_PROTOTYPES - Success
11.14 -- Performing Test HAVE_C_WNO_MISSING_PROTOTYPES
11.18 -- Performing Test HAVE_C_WNO_MISSING_PROTOTYPES - Success
11.18 -- Performing Test HAVE_C_WNO_MISSING_DECLARATIONS
11.22 -- Performing Test HAVE_C_WNO_MISSING_DECLARATIONS - Success
11.22 -- Performing Test HAVE_C_WNO_SHIFT_NEGATIVE_VALUE
11.26 -- Performing Test HAVE_C_WNO_SHIFT_NEGATIVE_VALUE - Success
11.26 -- Performing Test HAVE_C_WNO_UNDEF
11.30 -- Performing Test HAVE_C_WNO_UNDEF - Success
11.30 -- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH
11.33 -- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH - Success
11.33 -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
11.33 -- Performing Test HAVE_C_WNO_UNUSED_PARAMETER
11.37 -- Performing Test HAVE_C_WNO_UNUSED_PARAMETER - Success
11.37 -- Performing Test HAVE_C_WNO_SIGN_COMPARE
11.42 -- Performing Test HAVE_C_WNO_SIGN_COMPARE - Success
11.42 -- libjpeg-turbo: VERSION = 2.1.2, BUILD = opencv-4.5.5-libjpeg-turbo
11.42 -- Check size of size_t
11.46 -- Check size of size_t - done
11.46 -- Check size of unsigned long
11.50 -- Check size of unsigned long - done
11.50 -- Performing Test HAVE_BUILTIN_CTZL
11.54 -- Performing Test HAVE_BUILTIN_CTZL - Success
11.54 -- Looking for include file locale.h
11.58 -- Looking for include file locale.h - found
11.58 -- Looking for include file stdlib.h
11.62 -- Looking for include file stdlib.h - found
11.62 -- Looking for include file sys/types.h
11.66 -- Looking for include file sys/types.h - found
11.66 -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
11.66 -- Looking for assert.h
11.70 -- Looking for assert.h - found
11.70 -- Looking for dlfcn.h
11.74 -- Looking for dlfcn.h - found
11.74 -- Looking for fcntl.h
11.78 -- Looking for fcntl.h - found
11.78 -- Looking for inttypes.h
11.81 -- Looking for inttypes.h - found
11.81 -- Looking for io.h
11.83 -- Looking for io.h - not found
11.83 -- Looking for limits.h
11.86 -- Looking for limits.h - found
11.86 -- Looking for memory.h
11.90 -- Looking for memory.h - found
11.90 -- Looking for search.h
11.94 -- Looking for search.h - found
11.94 -- Looking for string.h
11.98 -- Looking for string.h - found
11.98 -- Looking for strings.h
12.02 -- Looking for strings.h - found
12.02 -- Looking for sys/time.h
12.06 -- Looking for sys/time.h - found
12.06 -- Looking for unistd.h
12.10 -- Looking for unistd.h - found
12.10 -- Performing Test C_HAS_inline
12.15 -- Performing Test C_HAS_inline - Success
12.15 -- Check size of signed short
12.19 -- Check size of signed short - done
12.19 -- Check size of unsigned short
12.24 -- Check size of unsigned short - done
12.24 -- Check size of signed int
12.29 -- Check size of signed int - done
12.29 -- Check size of unsigned int
12.34 -- Check size of unsigned int - done
12.34 -- Check size of signed long
12.39 -- Check size of signed long - done
12.39 -- Check size of signed long long
12.44 -- Check size of signed long long - done
12.44 -- Check size of unsigned long long
12.49 -- Check size of unsigned long long - done
12.49 -- Check size of unsigned char *
12.54 -- Check size of unsigned char * - done
12.54 -- Check size of ptrdiff_t
12.59 -- Check size of ptrdiff_t - done
12.59 -- Check size of INT8
12.61 -- Check size of INT8 - failed
12.61 -- Check size of INT16
12.63 -- Check size of INT16 - failed
12.63 -- Check size of INT32
12.65 -- Check size of INT32 - failed
12.65 -- Looking for floor
12.70 -- Looking for floor - found
12.70 -- Looking for pow
12.75 -- Looking for pow - found
12.75 -- Looking for sqrt
12.80 -- Looking for sqrt - found
12.80 -- Looking for isascii
12.85 -- Looking for isascii - found
12.85 -- Looking for memset
12.89 -- Looking for memset - found
12.89 -- Looking for mmap
12.94 -- Looking for mmap - found
12.94 -- Looking for getopt
12.98 -- Looking for getopt - found
12.98 -- Looking for memmove
13.03 -- Looking for memmove - found
13.03 -- Looking for setmode
13.07 -- Looking for setmode - not found
13.07 -- Looking for strcasecmp
13.11 -- Looking for strcasecmp - found
13.11 -- Looking for strchr
13.16 -- Looking for strchr - found
13.16 -- Looking for strrchr
13.21 -- Looking for strrchr - found
13.21 -- Looking for strstr
13.25 -- Looking for strstr - found
13.25 -- Looking for strtol
13.30 -- Looking for strtol - found
13.30 -- Looking for strtol
13.35 -- Looking for strtol - found
13.35 -- Looking for strtoull
13.39 -- Looking for strtoull - found
13.39 -- Looking for lfind
13.44 -- Looking for lfind - found
13.44 -- Performing Test HAVE_SNPRINTF
13.48 -- Performing Test HAVE_SNPRINTF - Success
13.48 -- Check if the system is big endian
13.48 -- Searching 16 bit integer
13.48 -- Using unsigned short
13.52 -- Check if the system is big endian - little endian
13.52 -- Performing Test HAVE_C_WNO_UNUSED_BUT_SET_VARIABLE
13.57 -- Performing Test HAVE_C_WNO_UNUSED_BUT_SET_VARIABLE - Success
13.57 -- Performing Test HAVE_C_WNO_UNUSED
13.61 -- Performing Test HAVE_C_WNO_UNUSED - Success
13.61 -- Performing Test HAVE_C_WNO_CAST_ALIGN
13.65 -- Performing Test HAVE_C_WNO_CAST_ALIGN - Success
13.65 -- Performing Test HAVE_C_WNO_SHADOW
13.69 -- Performing Test HAVE_C_WNO_SHADOW - Success
13.69 -- Performing Test HAVE_C_WNO_MAYBE_UNINITIALIZED
13.73 -- Performing Test HAVE_C_WNO_MAYBE_UNINITIALIZED - Success
13.73 -- Performing Test HAVE_C_WNO_POINTER_TO_INT_CAST
13.77 -- Performing Test HAVE_C_WNO_POINTER_TO_INT_CAST - Success
13.77 -- Performing Test HAVE_C_WNO_INT_TO_POINTER_CAST
13.81 -- Performing Test HAVE_C_WNO_INT_TO_POINTER_CAST - Success
13.81 -- Performing Test HAVE_C_WNO_MISLEADING_INDENTATION
13.84 -- Performing Test HAVE_C_WNO_MISLEADING_INDENTATION - Success
13.85 -- Performing Test HAVE_CXX_WNO_MISSING_DECLARATIONS
13.89 -- Performing Test HAVE_CXX_WNO_MISSING_DECLARATIONS - Success
13.89 -- Performing Test HAVE_CXX_WNO_UNUSED_PARAMETER
13.93 -- Performing Test HAVE_CXX_WNO_UNUSED_PARAMETER - Success
13.93 -- Performing Test HAVE_CXX_WNO_MISSING_PROTOTYPES
13.97 -- Performing Test HAVE_CXX_WNO_MISSING_PROTOTYPES - Failed
13.97 -- Performing Test HAVE_CXX_WNO_UNDEF
14.02 -- Performing Test HAVE_CXX_WNO_UNDEF - Success
14.02 -- Performing Test HAVE_C_STD_C99
14.06 -- Performing Test HAVE_C_STD_C99 - Success
14.06 -- Performing Test HAVE_C_WNO_UNUSED_VARIABLE
14.10 -- Performing Test HAVE_C_WNO_UNUSED_VARIABLE - Success
14.10 -- Performing Test HAVE_C_WNO_UNUSED_FUNCTION
14.14 -- Performing Test HAVE_C_WNO_UNUSED_FUNCTION - Success
14.14 -- Could NOT find OpenJPEG (minimal suitable version: 2.0, recommended version >= 2.3.1). OpenJPEG will be built from sources
14.14 -- Performing Test HAVE_C_WNO_IMPLICIT_CONST_INT_FLOAT_CONVERSION
14.18 -- Performing Test HAVE_C_WNO_IMPLICIT_CONST_INT_FLOAT_CONVERSION - Failed
14.18 -- OpenJPEG: VERSION = 2.4.0, BUILD = opencv-4.5.5-openjp2-2.4.0
14.18 -- Check if the system is big endian
14.18 -- Searching 16 bit integer
14.18 -- Using unsigned short
14.22 -- Check if the system is big endian - little endian
14.22 -- Looking for stdio.h
14.26 -- Looking for stdio.h - found
14.26 -- Looking for math.h
14.30 -- Looking for math.h - found
14.30 -- Looking for float.h
14.34 -- Looking for float.h - found
14.34 -- Looking for time.h
14.37 -- Looking for time.h - found
14.37 -- Looking for stdarg.h
14.41 -- Looking for stdarg.h - found
14.41 -- Looking for ctype.h
14.45 -- Looking for ctype.h - found
14.45 -- Looking for stdint.h
14.49 -- Looking for stdint.h - found
14.49 -- Looking for inttypes.h
14.53 -- Looking for inttypes.h - found
14.53 -- Looking for sys/stat.h
14.56 -- Looking for sys/stat.h - found
14.57 -- Looking for include file malloc.h
14.61 -- Looking for include file malloc.h - found
14.61 -- Looking for _aligned_malloc
14.62 -- Looking for _aligned_malloc - not found
14.62 -- Looking for posix_memalign
14.66 -- Looking for posix_memalign - found
14.66 -- Looking for memalign
14.70 -- Looking for memalign - found
14.70 -- Performing Test HAVE_C_WNO_CAST_FUNCTION_TYPE
14.74 -- Performing Test HAVE_C_WNO_CAST_FUNCTION_TYPE - Success
14.82 -- OpenJPEG libraries will be built from sources: libopenjp2 (version "2.4.0")
14.82 -- Found ZLIB: zlib (found version "1.2.11")
14.83 -- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
14.83 -- The ASM compiler identification is GNU
14.83 -- Found assembler: /usr/bin/aarch64-linux-gnu-gcc
14.83 -- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
14.83 -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
14.84 -- Could NOT find Atlas (missing: Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)
14.84 -- Looking for sgemm_
14.88 -- Looking for sgemm_ - not found
14.88 -- Found Threads: TRUE
14.88 -- Could NOT find BLAS (missing: BLAS_LIBRARIES)
14.88 -- LAPACK requires BLAS
14.88 -- A library with LAPACK API not found. Please specify library location.
14.88 -- Performing Test HAVE_CXX_WNO_DEPRECATED
14.93 -- Performing Test HAVE_CXX_WNO_DEPRECATED - Success
14.93 -- Performing Test HAVE_CXX_WNO_SHADOW
14.97 -- Performing Test HAVE_CXX_WNO_SHADOW - Success
14.97 -- Performing Test HAVE_CXX_WNO_UNUSED_LOCAL_TYPEDEFS
15.01 -- Performing Test HAVE_CXX_WNO_UNUSED_LOCAL_TYPEDEFS - Success
15.01 -- Performing Test HAVE_CXX_WNO_SIGN_COMPARE
15.06 -- Performing Test HAVE_CXX_WNO_SIGN_COMPARE - Success
15.06 -- Performing Test HAVE_CXX_WNO_SIGN_PROMO
15.10 -- Performing Test HAVE_CXX_WNO_SIGN_PROMO - Success
15.10 -- Performing Test HAVE_CXX_WNO_TAUTOLOGICAL_UNDEFINED_COMPARE
15.15 -- Performing Test HAVE_CXX_WNO_TAUTOLOGICAL_UNDEFINED_COMPARE - Failed
15.15 -- Performing Test HAVE_CXX_WNO_IGNORED_QUALIFIERS
15.19 -- Performing Test HAVE_CXX_WNO_IGNORED_QUALIFIERS - Success
15.19 -- Performing Test HAVE_CXX_WNO_EXTRA
15.23 -- Performing Test HAVE_CXX_WNO_EXTRA - Success
15.23 -- Performing Test HAVE_CXX_WNO_UNUSED_FUNCTION
15.28 -- Performing Test HAVE_CXX_WNO_UNUSED_FUNCTION - Success
15.28 -- Performing Test HAVE_CXX_WNO_UNUSED_CONST_VARIABLE
15.32 -- Performing Test HAVE_CXX_WNO_UNUSED_CONST_VARIABLE - Success
15.32 -- Performing Test HAVE_CXX_WNO_SHORTEN_64_TO_32
15.36 -- Performing Test HAVE_CXX_WNO_SHORTEN_64_TO_32 - Failed
15.36 -- Performing Test HAVE_CXX_WNO_INVALID_OFFSETOF
15.40 -- Performing Test HAVE_CXX_WNO_INVALID_OFFSETOF - Success
15.40 -- Performing Test HAVE_CXX_WNO_ENUM_COMPARE_SWITCH
15.45 -- Performing Test HAVE_CXX_WNO_ENUM_COMPARE_SWITCH - Failed
15.45 -- Performing Test HAVE_CXX_WNO_SUGGEST_OVERRIDE
15.50 -- Performing Test HAVE_CXX_WNO_SUGGEST_OVERRIDE - Success
15.50 -- Performing Test HAVE_CXX_WNO_INCONSISTENT_MISSING_OVERRIDE
15.54 -- Performing Test HAVE_CXX_WNO_INCONSISTENT_MISSING_OVERRIDE - Failed
15.54 -- Performing Test HAVE_CXX_WNO_IMPLICIT_FALLTHROUGH
15.58 -- Performing Test HAVE_CXX_WNO_IMPLICIT_FALLTHROUGH - Success
15.58 -- Performing Test HAVE_CXX_WNO_ARRAY_BOUNDS
15.63 -- Performing Test HAVE_CXX_WNO_ARRAY_BOUNDS - Success
15.63 -- Performing Test HAVE_CXX_WNO_CLASS_MEMACCESS
15.67 -- Performing Test HAVE_CXX_WNO_CLASS_MEMACCESS - Success
15.72 -- Carotene: NEON is not available, disabling carotene...
15.72 -- Looking for dlerror in dl
15.76 -- Looking for dlerror in dl - found
15.76 -- ADE: Download: v0.1.1f.zip
16.34 -- Allocator metrics storage type: 'int'
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse2.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse3.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.ssse3.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse4_1.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse4_2.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.fp16.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx2.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx512_skx.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx2.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx512_skx.cpp
16.34 -- Excluding from source files list: <BUILD>/modules/core/test/test_intrin512.avx512_skx.cpp
16.36 -- Excluding from source files list: modules/imgproc/src/corner.avx.cpp
16.36 -- Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp
16.36 -- Excluding from source files list: modules/imgproc/src/imgwarp.sse4_1.cpp
16.36 -- Excluding from source files list: modules/imgproc/src/resize.avx2.cpp
16.36 -- Excluding from source files list: modules/imgproc/src/resize.sse4_1.cpp
16.38 -- Registering hook 'INIT_MODULE_SOURCES_opencv_dnn': /opencv/modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake
16.39 -- opencv_dnn: filter out cuda4dnn source code
16.39 -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx.cpp
16.39 -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx2.cpp
16.39 -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp
16.39 -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.rvv.cpp
16.39 -- Excluding from source files list: <BUILD>/modules/dnn/int8layers/layers_common.avx2.cpp
16.40 -- Excluding from source files list: <BUILD>/modules/dnn/int8layers/layers_common.avx512_skx.cpp
16.41 -- Excluding from source files list: modules/features2d/src/fast.avx2.cpp
16.42 -- Performing Test HAVE_CXX_WNO_DEPRECATED_DECLARATIONS
16.46 -- Performing Test HAVE_CXX_WNO_DEPRECATED_DECLARATIONS - Success
16.48 -- highgui: using builtin backend: NONE
16.55 -- Found 'misc' Python modules from /opencv/modules/python/package/extra_modules
16.55 -- Found 'mat_wrapper;utils' Python modules from /opencv/modules/core/misc/python/package
16.55 -- Found 'gapi' Python modules from /opencv/modules/gapi/misc/python/package
16.58 --
16.58 -- General configuration for OpenCV 4.5.5 =====================================
16.58 --   Version control:               4.5.5
16.58 --
16.58 --   Platform:
16.58 --     Timestamp:                   2024-03-15T19:53:42Z
16.58 --     Host:                        Linux 5.15.146.1-microsoft-standard-WSL2 x86_64
16.58 --     Target:                      Linux 1 aarch64
16.58 --     CMake:                       3.16.3
16.58 --     CMake generator:             Unix Makefiles
16.58 --     CMake build tool:            /usr/bin/make
16.58 --     Configuration:               Release
16.58 --
16.58 --   CPU/HW features:
16.58 --     Baseline:
16.58 --       requested:                 NEON FP16
16.58 --       required:                  NEON
16.58 --       disabled:                  VFPV3
16.58 --
16.58 --   C/C++:
16.58 --     Built as dynamic libs?:      YES
16.58 --     C++ standard:                11
16.58 --     C++ Compiler:                /usr/bin/c++  (ver 9.4.0)
16.58 --     C++ flags (Release):         -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
16.58 --     C++ flags (Debug):           -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
16.58 --     C Compiler:                  /usr/bin/aarch64-linux-gnu-gcc
16.58 --     C flags (Release):           -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG
16.58 --     C flags (Debug):             -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
16.58 --     Linker flags (Release):      -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now   -Wl,--gc-sections -Wl,--as-needed
16.58 --     Linker flags (Debug):        -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now   -Wl,--gc-sections -Wl,--as-needed
16.58 --     ccache:                      NO
16.58 --     Precompiled headers:         NO
16.59 --     Extra dependencies:          dl m pthread rt
16.59 --     3rdparty dependencies:
16.59 --
16.59 --   OpenCV modules:
16.59 --     To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo stitching ts video videoio
16.59 --     Disabled:                    world
16.59 --     Disabled by dependency:      -
16.59 --     Unavailable:                 java python2 python3
16.59 --     Applications:                tests perf_tests apps
16.59 --     Documentation:               NO
16.59 --     Non-free algorithms:         NO
16.59 --
16.59 --   GUI:                           NONE
16.59 --     GTK+:                        NO
16.59 --
16.59 --   Media I/O:
16.59 --     ZLib:                        zlib (ver 1.2.11)
16.59 --     JPEG:                        libjpeg-turbo (ver 2.1.2-62)
16.59 --     WEBP:                        build (ver encoder: 0x020f)
16.59 --     PNG:                         build (ver 1.6.37)
16.59 --     TIFF:                        build (ver 42 - 4.2.0)
16.59 --     JPEG 2000:                   build (ver 2.4.0)
16.59 --     HDR:                         YES
16.59 --     SUNRASTER:                   YES
16.59 --     PXM:                         YES
16.59 --     PFM:                         YES
16.59 --
16.59 --   Video I/O:
16.59 --     DC1394:                      NO
16.59 --     FFMPEG:                      NO
16.59 --       avcodec:                   NO
16.59 --       avformat:                  NO
16.59 --       avutil:                    NO
16.59 --       swscale:                   NO
16.59 --       avresample:                NO
16.59 --     GStreamer:                   NO
16.59 --     v4l/v4l2:                    YES (linux/videodev2.h)
16.59 --
16.59 --   Parallel framework:            pthreads
16.59 --
16.59 --   Trace:                         YES (with Intel ITT)
16.59 --
16.59 --   Other third-party libraries:
16.59 --     Lapack:                      NO
16.59 --     Custom HAL:                  NO
16.59 --     Protobuf:                    build (3.19.1)
16.59 --
16.59 --   OpenCL:                        YES (no extra features)
16.59 --     Include path:                /opencv/3rdparty/include/opencl/1.2
16.59 --     Link libraries:              Dynamic load
16.60 --
16.60 --   Python (for build):            /usr/bin/python3
16.60 --
16.60 --   Install to:                    /opencv/platforms/linux/build/install
16.60 -- -----------------------------------------------------------------
16.60 --
16.72 -- Configuring incomplete, errors occurred!
16.72 See also "/opencv/platforms/linux/build/CMakeFiles/CMakeOutput.log".
16.72 See also "/opencv/platforms/linux/build/CMakeFiles/CMakeError.log".
------
aarch64.Dockerfile:106
--------------------
 105 |     RUN DEBIAN_FRONTEND=noninteractive apt install -y gcc-aarch64-linux-gnu git build-essential cmake
 106 | >>> RUN git clone --depth 1 --branch '4.5.5' https://github.com/opencv/opencv.git && \
 107 | >>>     cd opencv/platforms/linux && \
 108 | >>>     mkdir build && \
 109 | >>>     cd build && \
 110 | >>>     cmake -DCMAKE_TOOLCHAIN_FILE=../aarch64-gnu.toolchain.cmake ../../.. && \
 111 | >>>     make && \
 112 | >>>     make install
 113 |
--------------------
ERROR: failed to solve: process "/bin/sh -c git clone --depth 1 --branch '4.5.5' https://github.com/opencv/opencv.git &&     cd opencv/platforms/linux &&     mkdir build &&     cd build &&     cmake -DCMAKE_TOOLCHAIN_FILE=../aarch64-gnu.toolchain.cmake ../../.. &&     make &&     make install" did not complete successfully: exit code: 1
Error:
   0: could not run container
   1: when building custom image
   2: when building dockerfile
   3: `/usr/bin/docker buildx build --progress auto --build-arg 'VERBOSE=1' --label 'org.cross-rs.for-cross-target=aarch64-unknown-linux-gnu' --label 'org.cross-rs.runs-with=x86_64-unknown-linux-gnu' --label 'org.cross-rs.workspace_root=/home/cendo/larado-rs' --tag localhost/cross-rs/cross-custom-larado-rs:aarch64-unknown-linux-gnu-04db2 --build-arg 'CROSS_DEB_ARCH=arm64' --build-arg 'CROSS_BASE_IMAGE=ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main' --file ./aarch64.Dockerfile --output 'type=docker' /home/cendo/larado-rs` failed with exit status: 1

Location:
   src/docker/custom.rs:177

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                                ⋮ 2 frames hidden ⋮
   3: cross::docker::custom::Dockerfile::build::h128780bd500ff4e9
      at <unknown source file>:<unknown line>
   4: cross::docker::shared::DockerOptions::custom_image_build::h1abdf86eb2a23cbd
      at <unknown source file>:<unknown line>
   5: cross::docker::run::h67ff9b0f897ad6ad
      at <unknown source file>:<unknown line>
   6: cross::run::haa89dd5cc2f312ab
      at <unknown source file>:<unknown line>
   7: cross::main::h57e79b3f62b796ac
      at <unknown source file>:<unknown line>
   8: std::sys_common::backtrace::__rust_begin_short_backtrace::h0365a171431c2b77
      at <unknown source file>:<unknown line>
   9: main<unknown>
      at <unknown source file>:<unknown line>
  10: __libc_start_call_main<unknown>
      at ./csu/../sysdeps/nptl/libc_start_call_main.h:58
  11: __libc_start_main_impl<unknown>
      at ./csu/../csu/libc-start.c:392
  12: _start<unknown>
      at <unknown source file>:<unknown line>

Warning: call to docker failed
Suggestion: is `buildx` available for the container engine?
Note: disable the `buildkit` dependency optionally with `CROSS_CONTAINER_ENGINE_NO_BUILDKIT=1`

Any ideas where to go from here?

twistedfall commented 3 months ago

For the first issue it does indeed look like everything should work correctly. But your setup WSL + Linux + crosscompile is quite complicated. My guess is that it might be mismatch between linux and windows paths. Maybe you can try specifying the paths in windows style (e.g. "C:\users\cendo..."). Other thing to try to track it down is to try to insert more tracing into version_from_include_paths, get_version_from_headers and get_version_header functions to see what exactly happens that leads to inability to read the version from the header.

twistedfall commented 3 months ago

As for the second one, firstly I wouldn't recommend using cross to xbuild opencv because it has (had?) a very old ubuntu image as base. Regarding the docker file you might want to try to look at the example here in the readme: https://github.com/twistedfall/opencv-rust/blob/master/INSTALL.md#crosscompilation . The example won't work for you as is I suspect being run on windows, but might provide some clues.

Kamicosi commented 3 months ago

Solved! I took your advice and inserted some more tracing in build.rs to figure out what it was seeing. The solution may seem obvious to someone who has experience using Docker: You have to mount the directories on your local filesystem that contain the needed libraries and headers so that the Docker container can see them.

Cross.toml

[target.aarch64-unknown-linux-gnu]
pre-build = [
    "apt update",
    "apt --assume-yes install clang",
]

[build.env]
volumes = [
    "MY_OPENCV_PKG_CONFIG=/usr/lib/aarch64-linux-gnu/pkgconfig/",
    "MY_OPENCV_INCLUDE_PATH=/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/",
    "MY_OPENCV_LIB_PATH=/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/lib/aarch64-unknown-linux-gnu/8.5.0/",
]

.cargo/config.toml

[env]
OPENCV_LINK_LIBS = "opencv_core,opencv_imgproc,opencv_highgui"
OPENCV_LINK_PATHS = "/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/lib/aarch64-unknown-linux-gnu/8.5.0/"
OPENCV_INCLUDE_PATHS = "/home/cendo/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/8.5.0/opencv4/"