完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
看到很多人在小哪吒上编译Opencv,自己也尝试过编译了几次,各位开发者在编译的时候都可能会遇到不同的问题,现将其整理出来方便后面新来的开发者查阅。
环境需求 理论上任何版本的Ubuntu都可以,在社区中有hu487364在Ubuntu14 中成功 见帖:编译Tengine D1 出错 aldfaaa的Ubuntu20.04中,见贴:Ubuntu20.04交叉编译OpenCV 4.5.2, 运行在Tina Linux
sudo apt install cmake-qt-gui获取opencv源码 (小声bb)opencv的Relase版本更新还是挺快的,当然推荐大家使用最新的版本,这里就先贴上上一个版本了(前两天还是最新版本) 源码下载地址 下载源码后,放到虚拟机目录进行解压。然后进入opencv目录。 编译及编译配置 编译使用cmake-gui 打开cmake配置工具。 source 选择 opencv源码路径 build 选择编译路径(!注意不是安装路径) 然后点击 此处务必选择SDK中交叉编译链路径 # Operating system : Linux# process : riscv# C 选择d1-tina-open/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc# C++ 选择d1-tina-open/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gc++# Target root 选择d1-tina-open/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702然后点击 FInish 编译配置 打开Advancd选项, 设置了这些选项: CMAKE_BUILD_TYPE ReleaseCMAKE_EXE_LINKER_FLAGS -ldl -lpthread -latomicCMAKE_INSTALL_PREFIX ./install关闭jpeg 和 openjpeg 选项。搜索python 和 java --> 关闭所有相关的选项关于 是否勾选 opencv_word 将其全部链接成一个静态库 此处就仁者见仁智者见智。。。看个人需求 我自己是勾上的 这样在链接的时候好链接文件更改 (1)/d1-tina-open/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/sysroot/usr/include/features.h 的第364行前 加 上 #define _FILE_OFFSET_BITS 64 (2) opencv/3rdparty/protobuf/src/google/protobuf/stubs/commen.cc 中增加一行 #define HAVE_PTHREAD确认都配置好后 点击Configure ---> Configuring done 点击Generate----->Generating done 如果两个都没有问题,此时就可以开始编译了 编译 make -j8这个错误是因为没有关上jpeg 暂时只能将这个包关掉做编译(类型错误,没有修正) 这个错误是没有在上面加 -latomic 如果以上都没有 ,你就可以顺利编译下来 然后你就可以在 install 目录下 看到我们交叉编译后的文件了 在移动到板子之前,我们需要将atimic (原子操作库) 移动到我们的lib 目录,因为 Tina 默认没有将原子库打包进固件内。 cd 到lib目录# -d 和 * 可以保证其全部链接拿出来cp -d ~/d1-tina-open/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/riscv64-unknown-linux-gnu/lib64/lp64d/libatomic.so* .移动完成后 lib 中就有 如下 静态库。 然后就可以使用adb 将其 发送至开发板中。 即将完成!! adb push liblibopencv_world.so /libadb push liblibatomic.so /libadb push liblibatomic.so.1.2.0 /libadb push liblibatomic.so.1 /lib然后我们再将 bin 送入开发板 adb push bin /rootroot@TinaLinux:~/bin# chmod +x *root@TinaLinux:~/bin# lsopencv_annotation opencv_visualisationopencv_interactive-calibration setup_vars_opencv4.shopencv_versionroot@TinaLinux:~/bin# ./opencv_version4.5.1可以看到我们的开发板已经打印了 opencv的版本号 即将起飞。芜湖 注意 我们在编译的过程中 关掉了 jpeg 的相关包,所以在 imwrite 等操作时 ,无法解析 jpg 文件会出现这样的报错: terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4.5.1) /home/jie/下载/opencv-4.5.1/modules/imgcodecs/src/loadsave.cpp:682: error: (-2:Unspecified error) could not find a writer f |
|
|
|
只有小组成员才能发言,加入小组>>
541 浏览 0 评论
610 浏览 0 评论
735 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS系统定制开发
1409 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS编译开发说明
777 浏览 0 评论
全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
92111浏览 3评论
2841浏览 1评论
5114浏览 1评论
Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程
16397浏览 1评论
关于全志T113开发板接7寸LCD屏幕显示异常问题的解决方案
1130浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 10:29 , Processed in 0.508113 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号