ubuntu18编译安装opencv3.4.3

1. 配置

基本配置版本号
CPUIntel® Core™ i5-8400 CPU @ 2.80GHz × 6
GPUGeForce RTX 2070 SUPER/PCIe/SSE2
OSUbuntu18.04
openjdk1.8.0_242
python3.6.9
gcc5.5
g++8.4
opencv3.4.3
cmake3.17.2
protobuf3.0.0

hint:

  1. 如何多版本gcc,g++共存并且切换: https://blog.csdn.net/weixin_43056275/article/details/105124979
  2. 如何安装cmake: https://www.cnblogs.com/jsdy/p/11759247.html
  3. 注意: 编译caffe和openpose所使用的opencv必须版本一致, 不然到最后会报错.
  4. opencv版本4.0以上测试openpose会报错:. 错误: opencv-4.0.0/modules/highgui/src/window_gtk.cpp:146: error: (-215:Assertion failed) dst.data == widget->original_image->data.ptr in function ‘cvImageWidgetSetImage’

2. opencv3.4.3安装编译

2.1 下载源码

https://github.com/opencv/opencv/archive/3.4.3.tar.gz
解压后得到opencv-3.4.3

2.2 安装依赖库

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

2.3 编译opencv3.4.3

cd opencv3.4.3
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv343 ..
make all -j16
make install

2.4 配置环境变量

配置环境变量

1. 打开文件:
sudo gedit /etc/ld.so.conf.d/opencv.conf

2. 将以下内容添加到最后:
/usr/local/opencv343/lib

3. 接下来配置库:
sudo ldconfig

4. 更改环境变量:
sudo gedit /etc/bash.bashrc

5. 在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv343/lib/pkgconfig 
export PKG_CONFIG_PATH
6. 保存关闭
source /etc/bash.bashrc 重启终端

测试

打开opencv-3.4.3/samples/cpp/example_cmake, 打开终端输入下面的代码

cmake .
make
./opencv_example

出现 Hello OpenCV 即是成功!

3. 编译opencv踩坑记录

问题1:
/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录

解决1:
 cmake时加上 -DENABLE_PRECOMPILED_HEADERS=OFF 

问题2:
.build_release/tools/caffe: error while loading shared libraries: libcudart.so.10.0

解决2:
sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig

问题3:
源码编译opencv卡在IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20180518.tgz
解决3:

手动下载
https://download.csdn.net/download/weixin_43056275/12402359
如果想要其他版本的ippicv, https://github.com/opencv/opencv_3rdparty在这个链接选择你想要的branch下载.
下载之后将ippicv_2017u3_lnx_intel64_general_20180518.tgz放在opencv-3.4.3/3rdparty/ippicv/downloads(自己新建), 修改opencv-3.4.3/3rdparty/ippicv/ippicv.cmake的内容.
将47行 “https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/”
改成
“file:/home/ying/usb/opencv3.4.2/opencv-3.4.3/3rdparty/ippicv/downloads/”
注意一定要加 file:
然后重新cmake

问题4:
runtime library [libcublas.so.10.0] in /usr/local/cuda/lib64 may be hidden by files in: /usr/local/lib
/usr/bin/ld: cannot find -lcudart /usr/bin/ld: cannot find -lcurand /usr/bin/ld: cannot find -lcudnn
问题4解决:
原因是之前安装opencv默认直接安装到/usr/local, 导致cmake访问了多个libcublas.so.10.0. 解决: 卸载干净opencv, 先在build中sudo make uninstall, 然后手动删除/usr/local/lib中没有删除干净的文件, 如下图.
在这里插入图片描述删除/usr/local/share中的OpenCV, /usr/local/include中的opencv和opencv2.
重新下载编译opencv时, 注意一定要指定到一个空的文件夹, 并且必须要/usr/local下, 不然openpose找不到(就算指定opencv路径也找不到). 比如cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv343 … 指定到/usr/local/opencv343目录下.

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王二小、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值