基于mmdeploy在瑞星微(RK3588)上部署的编译过程问题

在主机上,使用交叉编译工具得到设备所需的SDK和bin和RKNN模型转换中遇到的问题:

1、在主机上进行RKNN模型转换:

        参照mmdeploy中,docs中的how-to-build中的rockchip.md安装环境,如果选用rknn_toolkit2-1.4.0_22dcfef4-cp38-cp38-linux_x86_64.whl时,请保证Linux系统版本尽量的高,本人测试在Ubuntu18.04上是不行的,rknn中的代码需要GLIBC_2.29支持,而修改系统的GLIBC可能导致系统崩溃,因此,后续本人在Ubuntu22.04上完成RKNN模型的转换。之前也测试过rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl,但是遇到的问题特别多,网上也找不到解决方法,然后就放弃了。

2、主机上进行交叉编译

        (1)根据rockchip.md的步骤进行安装,选用的瑞星微型号是rk3588。对系统不是很熟悉的小伙伴要注意了,文档中的export  XXX=XXXXXXX,这些都是临时变量,当你把终端关闭之后,就需要进行重新定义,不然后续就好报错,说你没有定义XXX变量。

        (2)安装opencv(版本:4.6.0)时需要注意的问题

                a.有可能在cmake的时候,按照文档设置了

-DCMAKE_TOOLCHAIN_FILE=../platforms/linux/aarch64-gnu.toolchain.cmake,但是会出现无法找到的情况,可以将这个路径设为绝对路径。

-DCMAKE_TOOLCHAIN_FILE=/home/XX/mm/opencv/platforms/linux/aarch64-gnu.toolchain.cmake

                b.还遇到一个关于neon报错的问题,具体忘记了,需要设置为

-DENABLE_NEON=OFF -DWITH_WEBP=OFF

                c.修改opencv中platform/linux/aarch64-gnu.toolchain.cmake文件,在第二行后面添加:

set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-9)
set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-9)

这个可能需要你重新安装一个aarch64版本的gcc,g++,详见:Linux交叉编译opencv并移植ARM端 - 知乎

但是,我测试时没有指定版本号,在进行后面的编译 mmdeploy SDK时出现了很多“undefined references to”的情况,网上说可能是编译器版本不对造成的错误,因此,又安装了版本为9的gcc和g++。

                d.文档中第4部分的编译 mmdeploy SDK中,在指令cmake后面缺少两个点,因此需要添加两个“..”,否则无法找到CMakeLists.txt文件,导致报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值