编译luckfox_pico_rtsp_yolov5报错librockchip_mpp.so: file format not recognized; treating as linker scrip

编译luckfox_pico_rtsp_yolov5报错 librockchip_mpp.so: file format not recognized; treating as linker script librockchip_mpp.so:0: syntax error

我的编译的sdk是rv1103的nand spi flash版本,尝试编译官方的例程https://wiki.luckfox.com/zh/Luckfox-Pico/RKMPI-example,出现错误:

[100%] Linking CXX executable luckfox_rtsp_yolov5
/home/eleclong/sdk/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/ld.bfd:/home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/lib/librockchip_mpp.so: file format not recognized; treating as linker script
/home/eleclong/sdk/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/ld.bfd:/home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/lib/librockchip_mpp.so:0: syntax error
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/luckfox_rtsp_yolov5.dir/build.make:154: luckfox_rtsp_yolov5] Error 1
make[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/luckfox_rtsp_yolov5.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

明显看到是链接的时候出的问题,这个时候的思路就在链接的动态库上,首先看一下项目的cmakelists文件,

link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)

是在项目的lib文件夹下有这个动态库,然后就找一下当前虚拟机里有没有这个编译好的库

sudo find / -name "librockchip_mpp.so"

/home/eleclong/sdk/luckfox-pico/output/out/media_out/lib/librockchip_mpp.so
/home/eleclong/sdk/luckfox-pico/output/out/oem/usr/lib/librockchip_mpp.so
/home/eleclong/sdk/luckfox-pico/media/out/lib/librockchip_mpp.so
/home/eleclong/sdk/luckfox-pico/media/mpp/release_mpp_rk3588_aarch64-rockchip1031-linux-gnu/lib/librockchip_mpp.so
/home/eleclong/sdk/luckfox-pico/media/mpp/release_mpp_rv1126_arm-rockchip830-linux-gnueabihf/lib/librockchip_mpp.so
/home/eleclong/sdk/luckfox-pico/media/mpp/release_mpp_rv1106_arm-rockchip830-linux-uclibcgnueabihf/lib/librockchip_mpp.so

发现在media的mpp release中有,所以我们对原来的cmakelists进行修改,增加一个链接的目录,让链接时可以找到sdk中的mpp动态库

link_directories(${SDK_PATH}/media/mpp/release_mpp_rv1106_arm-rockchip830-linux-uclibcgnueabihf/lib/)

然后修改项目里的动态库文件,优雅一点可以拷贝到lib中,我这边直接引用过去了,然后把原来lib文件夹下的删除

cd ./lib
rm -rf librockchip_mpp*

重新编译

mkdir build
cd build
cmake ..
make && make install 

编译成功~··!!

make && make install
[ 20%] Building CXX object CMakeFiles/luckfox_rtsp_yolov5.dir/src/main.cc.o
[ 40%] Building CXX object CMakeFiles/luckfox_rtsp_yolov5.dir/src/luckfox_mpi.cc.o
[ 60%] Building CXX object CMakeFiles/luckfox_rtsp_yolov5.dir/src/postprocess.cc.o
/home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/src/postprocess.cc: In function 'char* coco_cls_to_name(int)':
/home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/src/postprocess.cc:496:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
         return "null";
                ^~~~~~
/home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/src/postprocess.cc:504:12: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     return "null";
            ^~~~~~
[ 80%] Building CXX object CMakeFiles/luckfox_rtsp_yolov5.dir/src/yolov5.cc.o
[100%] Linking CXX executable luckfox_rtsp_yolov5
[100%] Built target luckfox_rtsp_yolov5
Consolidate compiler generated dependencies of target luckfox_rtsp_yolov5
[100%] Built target luckfox_rtsp_yolov5
Install the project...
-- Install configuration: ""
-- Installing: /home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/luckfox_rtsp_yolov5_demo/luckfox_rtsp_yolov5
-- Set runtime path of "/home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/luckfox_rtsp_yolov5_demo/luckfox_rtsp_yolov5" to "$ORIGIN/lib"
-- Installing: /home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/luckfox_rtsp_yolov5_demo/model/coco_80_labels_list.txt
-- Installing: /home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/luckfox_rtsp_yolov5_demo/model/yolov5.rknn
-- Installing: /home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/luckfox_rtsp_yolov5_demo/lib/librknnmrt.so
-- Installing: /home/eleclong/myproject/luckfox_pico_rtsp_yolov5-master/luckfox_rtsp_yolov5_demo/lib/librga.so

后续先分析一下这个cmakelists文件,然后再进行项目分析

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Thonny_rpi_pico 是适用于 Raspberry Pi Pico 微控制器的集成开发环境(IDE)。Raspberry Pi Pico 是由 Raspberry Pi 基金会开发的一款低成本、高性能的微型电子产品。它采用了 RP2040 芯片,拥有双核 Arm Cortex-M0+ 处理器和大量的 I/O 引脚,适用于各种物联网、嵌入式系统和电子项目。 Thonny_rpi_pico 提供了一个简单易用的开发环境,供初学者和专业开发人员使用。它具有直观的用户界面,集成了 Python 解释器和编译器,并提供了代码编辑、调试和运行等功能。它还支持将代码上传到 Raspberry Pi Pico 上运行,并与其他设备进行通信。 使用 Thonny_rpi_pico,用户可以编写和调试 Python 代码,实现各种功能和应用。用户可以通过串口连接 Raspberry Pi Pico,并使用 Thonny_rpi_pico 进行代码编写和调试。通过 Thonny_rpi_pico,用户可以直接在电脑上编辑和运行代码,并通过串口将程序上传到 Raspberry Pi Pico 上进行实时运行。 Thonny_rpi_pico 还提供了丰富的示例代码和文档,帮助用户快速入门和掌握 Raspberry Pi Pico 的开发。无论是学习嵌入式系统编程,还是开发物联网设备,Thonny_rpi_pico 都是一个强大的工具。它以其简洁易用和功能强大而受到开发者的喜爱。 总而言之,Thonny_rpi_pico 是适用于 Raspberry Pi Pico 的集成开发环境,提供了代码编辑、调试和运行等功能。它是一个强大的工具,适用于各种嵌入式系统和物联网项目的开发。无论是初学者还是专业开发人员,都可以利用 Thonny_rpi_pico 开发出高性能的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值