在NVIDIA NX 配置OpenCV多版本冲突和解决的总结

文章详细介绍了如何在NvidiaJetsonNX上刷JetPack5.1镜像,得到Ubuntu20.04、CUDA11.4、TensorRT8.4和OpenCV4.5.4的环境。提到了如何处理不同版本OpenCV的冲突,以及使用源码安装librealsense2时的注意事项。还分享了处理cmake版本问题、解决包冲突的技巧,并指出编译OpenCV可能需要特定版本的OpenBLAS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nvidia Jetson NX

环境

直接刷JetPack5.1的镜像,会得到如下环境

  • Ubuntu20.04
  • cuda11.4
  • TensorRT8.4
  • cudnn8.4
  • opencv4.5.4

而且这些源一般是从nv-xxxx等源下载的,打开软件Software&Update可以更该是否从这些源安装deb包。同时意味着,我们可以卸载一些已经安装的包,使用如下命令可以卸载,比如我环境中opencv4.5.4会和ros自带的opencv4.2冲突,我先删除了opencv4.5.4,然后只允许环境中存在一个opencv4.2

deb安装的包移除方式
sudo apt-get purge libopencv-dev
sudo apt-get autoremove

源码安装的包移除方式
卸载源码 sudo make && sudo make install的包,都可以通过 
sudo make uninstall 来移除安装

安装opencv4.2,我可以先通过下面命令看看包版本,然后再安装。

# 搜索一些包
sudo apt search libopencv-dev

安装ROS推荐

在板载电脑推荐安装ros-noetic-desktop,不要装那些仿真软件比如gazebo。它会自动下载libopencv4.2,然后以后不管装什么软件,都基于这个4.2版本安装,不要再装其他版本啦。

librealsense2安装

Ubuntu20.04 jetson没有deb的安装,只能用源码安装,但是注意在源码编译过程中,在cmake阶段,将-DFORCE_RSUSB_BACKEND=false,这是禁掉第二种USB传输方式,而是用linux自带的USB传输方式。不然会影响多相机使用。



小技巧

export 命令可以看当前所有环境变量
locate opencv 命令可以看电脑中所有和opencv相关的安装位置


issue 1

编译opencv或者realsense时,由于cmake版本问题,需要指明如下规则

if (POLICY CMP0072)
  set(OpenGL_GL_PREFERENCE LEGACY)
endif()

issue 2

如果有一些包版本不合适,出现you hold broken package然后无法安装的情况,可以使用aptitude工具来提供解决方法

sudo apt-get install aptitude
sudo aptitude install
# 输入n表示不同意该解决方法,它会给你自动推送下一个方法,然后可以输入y表示同意

issue 3

OpenBLAS是源码编译opencv的必备,但是官网最新的OpenBLAS版本太高,如果编译OpenCV3.4.10需要用OpenBLASv2.20.0版本。源码编译OpenBLASv2.20.0后安装在/opt目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值