很早以前就用过OpenCV for Linux的版本,记得以前编译安装的时候经常碰到奇奇怪怪的问题。最近上OpenCV.org发现版本号已经升到3.0alpha了,重新下载下来编译安装了一次。
解开zip包后,有CMakeLists.txt,也就是说只要你安装了cmake,在解压出来的根目录执行cmake .
就会自动生成Makefile,然后make && make install 就可以完成安装了。但是在一台全新的Linux上面,大部分发行版都还要安装一点依赖,即libgtk2.0-dev
and pkg-config
。假如没有装这两个,会造成什么结果呢?
造成的结果是,OpenCV中和gui有关的函数执行的时候都会出现错误,比如:
OpenCV 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/jinwei/opencv-2.4.9/modules/highgui/src/window.cpp, line 483
terminate called after throwing an instance of 'cv::Exception'
what(): /home/jinwei/opencv-2.4.9/modules/highgui/src/window.cpp:483: 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
所以呢,为了解决以上可能发生的问题,一个比较保险的安装方法应该是这样的。
- 首先, 将下载下来的zip包解压。
- 在Ubuntu系的机器上,
sudo apt-get install libgtk2.0-dev pkg-config cmake
。RHEL或者其他发行版用各自的包管理器安装相应的依赖。
- 进入到解压出来的根目录,执行
cmake .
sudo make
sudo make install
- Done!
一个最简易的OpenCV项目的CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project( ProjectName )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( ProjectName main.cpp )
target_link_libraries( ProjectName ${OpenCV_LIBS} )
当然啦,这样只适合单文件的项目。以此类推啦。