Alex Blog

[HailoRT]交叉编译Hailort 和 Hailort 驱动指南

 

 

 

交叉编译Hailort 和 Hailort 驱动指南

本指南提供了构建 Hailort 驱动文件(hailo_pci.ko)和库的说明。

Hailort 驱动

使用以下命令构建 Hailort 驱动:


            GCC:
            make ARCH=arm64 KERNEL_DIR=/home/alex/Work/Demos/RK3588_suit/rk3588_5.10.66/ CROSS_COMPILE=/opt/toolchain/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- all

            CLANG(供应商使用):
            export PATH=~/ken/tb-rk3588x/prebuilts/clang/bin:$PATH
            KERNEL_DIR=~/ken/tb-rk3588x/kernel/linux-5.10 make ARCH=arm64 CROSS_COMPILE=/mnt/raid0/sv/ken/tb-rk3588x/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- LLVM=1 LLVM_IAS=1 all
        

Hailort 库

将以下内容添加到 “CMakeLists.txt” 文件中:


            set(CMAKE_SYSTEM_NAME Linux)
            set(CMAKE_SYSTEM_PROCESSOR arm)

            set(tools /opt/toolchain/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu)
            set(CMAKE_C_COMPILER ${tools}/bin/aarch64-none-linux-gnu-gcc)
            set(CMAKE_CXX_COMPILER ${tools}/bin/aarch64-none-linux-gnu-g++)

            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_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
        

使用以下命令构建源代码:


            # 编译 HailoRT 源代码
            cd ../../../hailort/
            cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release -DHAILO_BUILD_EXAMPLES=1
            cmake --build build --config release
        

 

 


已发布

分类

,

来自

标签:

评论

《“[HailoRT]交叉编译Hailort 和 Hailort 驱动指南”》 有 1 条评论

  1. alex 的头像

    更新新的方式,增加了从交叉编译器的 sysroot查找对应的头文件:

    set(CMAKE_SYSTEM_NAME Linux)
    set(CMAKE_SYSTEM_PROCESSOR aarch64)

    # 设置工具链路径
    set(tools /opt/toolchain/rk3588/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/)

    # 设置编译器
    set(CMAKE_C_COMPILER ${tools}/bin/aarch64-none-linux-gnu-gcc)
    set(CMAKE_CXX_COMPILER ${tools}/bin/aarch64-none-linux-gnu-g++)

    # 设置 sysroot
    set(CMAKE_SYSROOT ${tools}/aarch64-none-linux-gnu/libc)

    # 查找程序、库、头文件时的优先级
    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

    # 添加编译器标志
    set(CMAKE_C_FLAGS “${CMAKE_C_FLAGS} –sysroot=${CMAKE_SYSROOT} -fpermissive”)
    set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} –sysroot=${CMAKE_SYSROOT} -fpermissive”)

    # 禁用未支持的功能
    set(HAVE_STD_REGEX 0)
    set(HAVE_POSIX_REGEX 0)
    set(HAVE_STEADY_CLOCK 0)

回复 alex 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注