编译opencv后的跨平台使用问题

arm64上编译opencv得到opencv_world.so,放到x86_64平台,用CLion交叉编译arm64的程序时会报一堆的缺少依赖的so文件。

/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: warning: libjpeg.so.8, needed by /lib/aarch64-linux-gnu/libopencv_world.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: warning: libwebp.so.6, needed by /lib/aarch64-linux-gnu/libopencv_world.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: warning: libpng16.so.16, needed by /lib/aarch64-linux-gnu/libopencv_world.so, not found (try using -rpath or -rpath-link)

其实x86_64上都有这些so文件,但不是arm64版本的so,所以导致了这个问题。拷贝arm64的这些so到x86_64上的 /usr/lib/aarch64-linux-gnu/ 文件夹里就可以解决。但是太麻烦了。

最稳妥的做法是,arm64、x86_64上都编译opencv,其中x86_64上编译两种版本的(x86_64版本的和arm64版本的)。

因为,虽然x86_64上交叉编译的arm64版本的opencv_world.so可以放到arm64平台直接用,但是imshow时报缺少GTK,这个在x86_64上编译时包含GTK失败,即使勾选了WITH_GTK也是失败,因为x86_64上没有arm64的GTK。

posted @   夕西行  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-12-03 算法思维的实现——反正切算法
2018-12-03 算法评价
2018-12-03 引用、指针
2016-12-03 Ubuntu中Qt5.7.0的安装及opencv2.4.13配置
2016-12-03 Ubuntu16.04删除客人会话
点击右上角即可分享
微信分享提示