ubuntu22部署c++ 配置opencv4.5.5,opencv_contrib4.5.5,以及opencv下的cuda(cuda11.6,cudnn8.4.1)
cudann一定要配置好不然opencv配置cuda会失败的
我这里采用的是opencv4.5.5和相同版本的contribure
一.软件的安装
这个部分我装了太多的依赖具体是那些我已经记不清了所以先放我成功配置看的那篇博客的依赖
1 | sudo apt-get update |
cmake的安装
1 | sudo apt-get install cmake-gui |
二.cmake配置
这里我采用的的是.cache用的别人下好的东西来进行配置不然有些东西很难下载,白嫖某个大佬的连接
百度云:链接:https://pan.baidu.com/s/1XaYIAc6wDoWrtLaHRJs5Qg?pwd=kksk 提取码:kksk
下载好后复制到opencv的文件夹下,如果没有显示的话输入critl+H就可以了。contrib也可以放在这个文件夹下面

创建文件夹并进入
1 | mkdir myopencv |
进入后的c++界面

点击configure
如果卡在下载ippvc可以自己去下载对应版本的我这里放出我的版本的ippvc
链接: https://pan.baidu.com/s/1C05qBz-eSAUIxdwljce0kw 密码: 4q33
然后修改/home/yuesang/software/opencv-4.5.5/3rdparty/ippicv下的ippicv的cmake文件,先把下载好的ippicv放入这个文件夹

然后编辑ippicv.cmake文件

这里我把本来的download注释了并且增加了set(res TRUE)
成功后的界面

OPENCV_GENERATE_PKGCONFIG这个选项记得要勾起来
OpenCV4以上默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能(这个没有勾选的话可能无法配置到clion)
去掉这些选项(可以搜索java,python,calib3d把这些包去除)



contrib路径的添加**(记得要定位到contib下的modules)**

直接搜索cuda

configure完成后

再次点击cofigure

没有报错且变成白色应该就成功了吧然后点击generate生成

进入刚刚创建的文件夹,并且打开终端
输入
1 | sudo make -j20 |
人生没有一帆风顺出现报错了怎么办

进入这个页面找到报错的地方把他删掉(就像人生一样要学会合理的放弃)

重新配置和生成,然后继续cmake,重复以上操作直到编译成功为止
calib3d和stereo好像是关联的两个包可以取消(这两个包是双目相机标定的好像)
终于完成了真心不容易阿

安装以下
1 | sudo make install |
可能会出现这个报错,缺啥我们就给他啥
解压刚刚下载的ippicv进入找到ippicv_lnx

没有这个文件夹我们就建立一个

复制进来

重新下载 (大功告成)
环境变量的配置
1 | sudo gedit /etc/ld.so.conf |
输入这两行
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib
然后再输入
1 | sudo ldconfig |
添加这两行
#opencv
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
然后编译一下
1 | source /etc/profile |
配置pkg-config环境
opencv4.pc文件的默认路径:/usr/local/lib/pkgconfig/opencv4.pc
若此目录下没有,可以使用以下命令搜索:
1 | sudo find / -iname opencv4.pc |
确实有

将路径加入到PKG_CONFIG_PATH
1 | sudo gedit /etc/profile.d/pkgconfig.sh |
输入
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
激活一下
1 | source /etc/profile |
验证是否成功
1 | pkg-config --libs opencv4 |
成功啦

配置动态库环境
1 | sudo gedit /etc/ld.so.conf.d/opencv4.conf |
加入下面这行
/usr/local/lib
生效一下
1 | sudo ldconfig |
测试
进入到/samples/cpp/example_cmake下面

打开终端输入
1 | cmake . |
然后
1 | make . |
应该是成功了

这个时候我们看一下文件夹下面出现了一个opencv-example

运行后出现我人太丑就不放照片了

这样opencv的编译到此完成。
三.Clion
创建desktop文件
1 | cd ~/.local/share/applications/ |
注意看注释
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Clion
Exec=/home/yuesang/software/clion-2022.2.1/bin/clion.sh
# 注意:Exec表示安装软件的**启动快捷方式**文件路径
# 注意:Icon表示安装软件的图标路径
Icon=/home/yuesang/software/clion-2022.2.1/bin/clion.png
NoDisplay=false
StartupWMClass=
接下来是cmakelist的文件编写
这里我放上我的cmakelist
1
2
3
4
5
6
7
8
9
10
11 cmake_minimum_required(VERSION 3.23)
project(test)
find_package(OpenCV REQUIRED) #加这一句
include_directories(${OpenCV_INCLUDE_DIRS}) #加这一句
set(CMAKE_CXX_STANDARD 14)
add_executable(test main.cpp)
target_link_libraries(test ${OpenCV_LIBS})#加这一句
测试代码
1 | #include<opencv2/opencv.hpp> |
终于配完了
四.opencv的卸载
1 | sudo make uninstall |
环境变量那块 之前是忘记配置opencv4.pc了所以导致实例可以正常运行但是clion里面运行不了代码,环境变量那块自己也弄得有点迷糊
ubuntu22的坑还是有一些的,比如openvion好像是没办法装到上面因为openvion只支持到20,有什么错误或者不懂的欢迎大家给我指出