多版本cuda+多版本cudnn+gcc+cmake+opencv+darknet爬坑记录

本文记录了在CentOS7环境下,如何进行多版本CUDA、CUDNN、gcc、cmake、opencv以及darknet框架的部署。重点涉及CUDA环境变量切换、CUDNN安装、gcc选择5.5版本、cmake升级到3.9.2、pkg-config使用0.27.1版本以及opencv4.3.0的安装,最终实现darknet框架的成功部署。

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

本次针对darknet框架部署—centos7.x
一、CUDA 多版本安装
1、很早前安装了很多cuda现在忘了步骤了,这里不再安装,下次再补上,可以看其他贴安装,记清楚自己的安装目录,一般默认在 /usr/local/cuda(cuda10.0、cuda10.2),用哪个切换环境变量就行,很方便
二、CUDNN版本安装

	1、下载cudnn并解压,官网上下载与CUDA相匹配的版本,下载难点需要注册个帐号,有时候很卡
		tar -zxvf cudnn-7.0-linux-64-v3.0-prod.tgz
	2、解压后会生成一个cuda文件夹,里面包含了include和lib64两个子目录,我们需要做的是把这两个目录文件复制到cuda安装目录相同子目录中
		sudo cp  ./cuda/include/cudnn.h /usr/local/cuda/include
		sudo cp  ./cuda/lib64/* /usr/local/cuda/lib64/
	3、这个时候本来已经可以了,但由于权限的原因原来的两个符号连接文件(libcudnn.so,libcudnn.so,7.0)已经失效了,直接编译便会报错,所以这时手动生成符号链接
		cd /usr/local/cuda/lib64
		sudo rm -rf libcudnn.so libcudnn.so.7.o#删除两个符号链接
		sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0#具体版本号查看lib64目录里的
		sudo ln -s libcudnn.so.7.0 libcudnn.so
		sudo ldconfig #配置完成!   会报错应该是匹配cuda版本有问题
		
	https://www.cnblogs.com/jimchen1218/p/11804980.html

三、gcc 版本限定4.8-6.0,我用的是5.5,推荐

	1.下载gcc相应的源码包
		wget http://ftp.gnu.org/gnu/gcc/ #先去连接看看版本
	2.解压缩
		tar -xzvf gcc-5.5.0.tar
<think>好的,我现在需要帮助用户在Jetson Xavier NX上安装和配置OpenCV。用户之前可能尝试过安装,但遇到了问题,比如编译错误或者版本不兼容。首先,我要整理已有的信息,看看引用中提到的资源有哪些有用的步骤。 根据引用内容,用户提到了几个关键点:预装OpenCV的版本检查、安装特定版本(如3.4.5或4.5.x)、编译时的错误(比如IplImage的问题),以及安装依赖项和配置选项。还有用户提供的引用链接中,有详细的安装步骤和踩记录,比如引用[3]、[4]、[5]。 首先,用户的问题是如何在Jetson Xavier NX上安装和配置OpenCV。我需要分步骤说明,确保用户能够跟随操作。可能需要先检查现有版本,然后决定是否卸载旧版本,再安装新版本。同时,要注意到不同的OpenCV版本需要的依赖和配置参数可能不同,比如CUDA的支持,或者contrib模块的添加。 接下来,引用[1]中提到用pkg-config检查版本,这应该作为第一步。如果用户需要安装特定版本,比如3.4.5或4.5.4,可能需要卸载现有的OpenCV。但卸载步骤需要谨慎,避免破坏系统依赖。引用[3]和[4]提到卸载OpenCV库的方法,可能需要手动删除相关文件或者使用make uninstall,如果有的话。 然后,安装依赖库是关键。不同的教程可能有不同的依赖列表,需要整合这些,确保用户安装所有必要的包,比如cmakegcc、python-dev、视频编解码库等。引用[5]中的cmake命令提供了配置参数,比如启用CUDA、设置安装路径、contrib模块路径等,这些参数需要正确设置才能成功编译。 另外,用户提到的错误error: ‘IplImage’ does not name a type可能涉及到OpenCV版本的问题。IplImage在较新的OpenCV版本中可能已被弃用,所以如果用户安装的是旧版本(比如3.x),可能需要确保代码兼容性,或者在编译时启用相关选项。但这个问题可能出现在用户编译其他库(如darknet)时,所以可能需要确认OpenCV版本与darknet的兼容性。 在步骤中,可能需要指导用户如何正确配置cmake参数,尤其是与CUDA相关的选项,如CUDA_ARCH_BIN的设置,因为Jetson Xavier NX的GPU架构是7.2,这在引用[5]中提到过。此外,启用OPENCV_GENERATE_PKGCONFIG可以方便后续开发使用pkg-config来链接库。 编译和安装过程可能会遇到内存不足的问题,因为Jetson Xavier NX的内存有限。建议用户使用交换空间或者减少并行编译的线程数。比如,在make时使用-j4而不是更高的数字,或者使用交换文件扩展内存。 安装后的验证步骤也很重要,包括检查版本、运行测试程序,以及配置环境变量,确保python可以正确导入cv2模块。如果用户使用虚拟环境,可能需要将编译的OpenCV链接到site-packages目录下。 最后,用户可能需要处理常见问题,比如编译失败时的日志检查,或者依赖项缺失的错误。引用中提供的资源可以作为参考,帮助用户解决特定问题,比如引用[2]中的错误可能与OpenCV版本和代码兼容性有关,需要确认安装的版本是否支持所需的API。 总结来说,安装步骤应包括:检查现有版本、卸载旧版本(可选)、安装依赖、下载源码、配置cmake、编译、安装、验证。同时,需要提醒用户注意硬件限制和可能的编译问题,参考提供的链接获取详细解决方案。</think>### 在Jetson Xavier NX上安装和配置OpenCV的完整步骤 #### 1. **检查预装OpenCV版本** Jetson Xavier NX可能已预装OpenCV。通过以下命令查看当前版本: ```bash pkg-config --modversion opencv # 输出可能为4.5.4或更高版本[^1] ``` 若需安装特定版本(如3.4.5或4.5.x),需先卸载旧版本。 --- #### 2. **卸载旧版本(可选)** **仅当需要覆盖安装时执行**: ```bash sudo apt-get purge libopencv* # 删除通过apt安装OpenCV sudo rm -rf /usr/local/include/opencv* # 手动删除残留头文件 sudo rm -rf /usr/local/lib/libopencv* # 删除库文件[^3][^4] ``` --- #### 3. **安装依赖项** 安装编译OpenCV所需的基础工具和库: ```bash sudo apt-get update sudo apt-get install -y cmake build-essential git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev sudo apt-get install -y libv4l-dev v4l-utils # 摄像头支持[^5] ``` --- #### 4. **下载OpenCV源码** 以OpenCV 4.5.4为例,下载源码及扩展模块: ```bash git clone --branch 4.5.4 https://github.com/opencv/opencv.git git clone --branch 4.5.4 https://github.com/opencv/opencv_contrib.git # 扩展模块 ``` --- #### 5. **配置CMake参数** 进入构建目录并配置编译选项: ```bash cd opencv mkdir build && cd build cmake \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \ -D CUDA_ARCH_BIN=7.2 # Jetson Xavier NX的GPU架构 \ -D WITH_CUDA=ON \ -D WITH_CUDNN=ON \ -D ENABLE_FAST_MATH=1 \ -D CUDA_FAST_MATH=1 \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D WITH_GTK=ON \ -D WITH_OPENGL=ON .. ``` **关键参数说明**: - `CUDA_ARCH_BIN=7.2`: 匹配Jetson Xavier NX的GPU架构[^5] - `OPENCV_GENERATE_PKGCONFIG=ON`: 生成pkg-config文件,便于开发调用 --- #### 6. **编译与安装** ```bash make -j4 # 根据内存调整并行线程数(-j4较安全) sudo make install sudo ldconfig # 更新库链接 ``` --- #### 7. **验证安装** - **检查版本**: ```bash pkg-config --modversion opencv # 应显示4.5.4 ``` - **Python测试**: ```python import cv2 print(cv2.__version__) # 应输出4.5.4 ``` --- #### 8. **常见问题解决** - **编译内存不足**: 增加交换空间(参考): ```bash sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` - **‘IplImage’错误**: 确认代码是否兼容OpenCV 4.x(需改用`cv::Mat`)[^2] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值