最近在学习一些双目立体匹配的算法,大部分开源的代码还都是基于C++的,所以我需要在我的Ubuntu20.10上安装配置C++版本的Opencv,没想到这么麻烦,所以记录一下。
我使用的环境是:
- Ubuntu20.10
- Opencv3.1.0
- Clion
以下为安装步骤:
安装步骤
在Opencv官网下载source压缩包,然后在本地解压。
编译并安装
1
2
3
4
5
6
7
8
9
10创建并进入 build 文件夹
mkdir build
cd bulid
使用 cmake 进行编译
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
多线程编译,更快。我的电脑4核,所以是j4
make -j4
sudo make install这样其实就安装好了
验证
安装好了之后需要验证一下,使用这段代码进行验证:
1 |
|
一些bug的解决方式
/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录
在cmake时,添加一项参数:
-DENABLE_PRECOMPILED_HEADERS=OFF
,所以我的cmake命令如下:1
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. -DENABLE_PRECOMPILED_HEADERS=OFF
然后再make、make install就可以了
使用代码验证时,需要配置一下Clion的
CMakelists.txt
:1
2
3find_package(OpenCV REQUIRED)
target_link_libraries( ClionTest ${OpenCV_LIBS} ) // ClionTest是项目名运行代码时,出现类似以下这样的错误,代表缺少一些显示窗口的库:
1
2
3OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/wangtaocs/Downloads/opencv-3.1.0/modules/highgui/src/window.cpp, line 527
terminate called after throwing an instance of 'cv::Exception'
what(): /home/wangtaocs/Downloads/opencv-3.1.0/modules/highgui/src/window.cpp:527: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow解决办法是:
1
apt-get install libgtk2.0-dev pkg-config
然后重新进行上边的步骤,编译安装opencv即可
参考
OpenCV Error: Unspecified Error(The Function is not implemented)