编译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。
分类:
OpenCV
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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删除客人会话