ubuntu系统下opencv的编译安装

ubuntu系统下opencv的编译安装

参考https://blog.csdn.net/KIK9973/article/details/118830187

1 安装准备

1.1安装依赖环境(Ubuntu18.04)

下载opencv的依赖,其中第三行的依赖是可选的,前两行的依赖则是必要的。

powershell 复制代码
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev

1.2下载源码

https://opencv.org/releases/

1.3.可以将源码放在任意目录,解压

powershell 复制代码
cd /mnt/d/tools
unzip -o -d ~/. opencv-4.8.0.zip

2 安装

2.1编译

2.1.1 cmake

powershell 复制代码
cd ~/opencv-4.8.0
mkdir -p build 
cd ./build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=True -D ENABLE_CXX11=1 ..

2.1.2 make

powershell 复制代码
nproc #查看线程数
sudo make -j16    #在build 文件内 执行该命令  数字越大 后续make的过程就越快。
sudo make install

2.2 环境配置

2.2.1 修改etc/bash.bashrc

powershell 复制代码
#打开下列文件
sudo vim /etc/bash.bashrc
#文件末尾添加以下内容 并保存
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#更新
sudo updatedb
source /etc/bash.bashrc

2.2.2 修改动态链接库

powershell 复制代码
#打开下列文件
sudo vim /etc/ld.so.conf.d/opencv.conf 
# 添加lib路經 在 末尾 保存退出
/usr/local/lib
# 更新
sudo ldconfig

报错: /sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

解决方案:

powershell 复制代码
cd /usr/lib/wsl
sudo mkdir lib2
sudo ln -s lib/* lib2
#更改wsl配置文件,将 /usr/lib/wsl/lib 改为 /usr/lib/wsl/lib2
sudo vim /etc/ld.so.conf.d/ld.wsl.conf
#测试修改是否生效
sudo ldconfig

#永久修改(有时候会报权限问题,直接手动在文件后面加那两行)
sudo cat >> /etc/wsl.conf << EOF
[automount]
ldconfig = fasle
EOF

3 检查安装情况

1.命令行查看安装情况

powershell 复制代码
#终端输入以下两命令,显示正常则安装成功
pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库

4.程序测试

opencv在下载时已经提供了测试程序

powershell 复制代码
cd ~/opencv-4.8.0/samples/cpp/example_cmake
mkdir build
cd ./build
cmake ..
make
./opencv_example ## 生成一个可执行文件 拖入终端执行 也可
相关推荐
JeJe同学15 分钟前
LabelImg 标签字体大小修改教程
linux·人工智能·python
小鸡毛程序员19 分钟前
从零搭建 Linux 开发服务器:VMware NAT 静态网络 + Docker + MySQL + Redis + 云服务器迁移
linux·服务器·网络
Cx330❀1 小时前
【Linux网络】一文吃透 TCP Socket 编程
linux·运维·服务器·开发语言·网络·tcp/ip
zizle_lin1 小时前
WSL初始化Ubuntu的使用
linux·运维·ubuntu·wsl
c++之路1 小时前
Linux 下 C++ 开发环境搭建
linux·运维·c++
溜达的大象1 小时前
Ubuntu服务器之间校时
linux·ubuntu·excel
鹏大师运维1 小时前
Ubuntu 26.04 Linux 7.0内核安装VMware实战
linux·ubuntu·vmware·虚拟机·麒麟·统信uos·linux7.0
Bruce_kaizy1 小时前
c++网络编程——解析主机字节序、网络字节序以及深入剖析tcp编程中万恶的结构体(爆肝)
linux·服务器·网络·tcp/ip·ubuntu
小猫咪011 小时前
Linux 定时任务 crontab 详解:让脚本每天自动执行
linux·运维·服务器
jcbut1 小时前
在Linux 7.9上安装NetBackup IT Analytics (ITA) 11.2
linux·运维·netbackup·it analytics·ita