使用 Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2,编译opencv-4.9.0
·
使用 Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2,编译opencv-4.9.0
构建riscv64-toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR riscv64)
set(TOOLCHAIN_PATH "*/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2")
set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/riscv64-unknown-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/riscv64-unknown-linux-gnu-g++)
set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_PATH}/sysroot)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64gc_zicsr_zifencei -mabi=lp64d -mcmodel=medany -O3 -ffast-math")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64gc_zicsr_zifencei -mabi=lp64d -mcmodel=medany -O3 -ffast-math")
set(BUILD_opencv_apps OFF)
set(BUILD_opencv_python2 OFF)
set(BUILD_opencv_python3 OFF)
set(BUILD_TESTS OFF)
set(BUILD_PERF_TESTS OFF)
set(BUILD_EXAMPLES OFF)
set(WITH_QT OFF)
set(WITH_GTK OFF)
set(WITH_GSTREAMER OFF)
set(WITH_V4L OFF)
set(WITH_IPP OFF)
set(WITH_TBB OFF)
set(WITH_OPENMP ON)
set(WITH_OPENCL OFF)
set(WITH_CUDA OFF)
set(WITH_FFMPEG OFF)
set(ENABLE_NEON OFF)
set(CMAKE_BUILD_TYPE Release)
构建build.sh编译opencv 4.9.0
#!/bin/bash
set -e
# OpenCV 4.9.0 cross-compilation build script for RISC-V C907
# Toolchain: Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
TOOLCHAIN_PATH="*/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2"
BUILD_DIR="${SCRIPT_DIR}/build"
INSTALL_DIR="${SCRIPT_DIR}/install"
TOOLCHAIN_FILE="${SCRIPT_DIR}/riscv64-toolchain.cmake"
NPROC=$(nproc)
echo "============================================"
echo " OpenCV 4.9.0 RISC-V C907 Build"
echo "============================================"
echo " Toolchain: ${TOOLCHAIN_PATH}"
echo " Build dir: ${BUILD_DIR}"
echo " Install dir: ${INSTALL_DIR}"
echo " Jobs: ${NPROC}"
echo "============================================"
# Verify toolchain exists
if [ ! -d "${TOOLCHAIN_PATH}" ]; then
echo "ERROR: Toolchain not found at ${TOOLCHAIN_PATH}"
exit 1
fi
# Generate toolchain file
echo "[1/3] Generating toolchain file..."
cat > "${TOOLCHAIN_FILE}" <<'EOF'
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR riscv64)
set(TOOLCHAIN_PATH "*/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2")
set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/riscv64-unknown-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/riscv64-unknown-linux-gnu-g++)
set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_PATH}/sysroot)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64gc_zicsr_zifencei -mabi=lp64d -mcmodel=medany -O3 -ffast-math")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64gc_zicsr_zifencei -mabi=lp64d -mcmodel=medany -O3 -ffast-math")
set(BUILD_opencv_apps OFF)
set(BUILD_opencv_python2 OFF)
set(BUILD_opencv_python3 OFF)
set(BUILD_TESTS OFF)
set(BUILD_PERF_TESTS OFF)
set(BUILD_EXAMPLES OFF)
set(WITH_QT OFF)
set(WITH_GTK OFF)
set(WITH_GSTREAMER OFF)
set(WITH_V4L OFF)
set(WITH_IPP OFF)
set(WITH_TBB OFF)
set(WITH_OPENMP ON)
set(WITH_OPENCL OFF)
set(WITH_CUDA OFF)
set(WITH_FFMPEG OFF)
set(ENABLE_NEON OFF)
set(CMAKE_BUILD_TYPE Release)
EOF
# Configure
echo "[2/3] Configuring with CMake..."
mkdir -p "${BUILD_DIR}"
cd "${BUILD_DIR}"
cmake \
-DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}" \
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
..
# Build
echo "[3/3] Building (${NPROC} jobs)..."
make -j${NPROC}
# Install
echo "Installing to ${INSTALL_DIR}..."
make install
# Verify
echo ""
echo "============================================"
echo " Build Complete!"
echo "============================================"
file "${INSTALL_DIR}/lib/libopencv_core.so.4.9.0"
echo "Libraries:"
ls "${INSTALL_DIR}/lib/"*.so 2>/dev/null
echo "============================================"
生成目录如图:
结果:
============================================
Build Complete!
============================================
/opencv-4.9.0/install/lib/libopencv_core.so.4.9.0: ELF 64-bit LSB shared object, UCB RISC-V, version 1 (GNU/Linux), dynamically linked, not stripped
Libraries:
/opencv-4.9.0/install/lib/libopencv_calib3d.so
/opencv-4.9.0/install/lib/libopencv_core.so
/opencv-4.9.0/install/lib/libopencv_dnn.so
/opencv-.9.0/install/lib/libopencv_features2d.so
/opencv-4.9.0/install/lib/libopencv_flann.so
/opencv-4.9.0/install/lib/libopencv_highgui.so
/opencv-.9.0/install/lib/libopencv_imgcodecs.so
/opencv-4.9.0/install/lib/libopencv_imgproc.so
/opencv-4.9.0/install/lib/libopencv_ml.so
/opencv-.9.0/install/lib/libopencv_objdetect.so
/opencv-4.9.0/install/lib/libopencv_photo.so
/opencv-.9.0/install/lib/libopencv_stitching.so
/opencv-4.9.0/install/lib/libopencv_videoio.so
/opencv-4.9.0/install/lib/libopencv_video.so
============================================
更多推荐

所有评论(0)