根据官方在/usr/local/share/OpenCVConfig.cmake
文件中的说明
在CMakeLists.txt
中加入这些即可
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS}) # Not needed for CMake >= 2.8.11
add_executable(可执行文件的名字 xxx.cpp) # 先添加可执行文件
target_link_libraries(可执行文件的名字 ${OpenCV_LIBS}) # 再链接到动态库
1.1 安装cmake
sudo apt-get install cmake
1.2安装依赖环境
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
1.3 下载Opencv源代码
下载地址:https://opencv.org/releases/
这里以3.4.14为例, 选择sources
如果要安装opencv_contrib的话,一并下载,github链接:https://github.com/opencv/opencv_contrib/tree/3.4.14
2.1 解压
将下载的压缩包解压到一个地方,这里选择/home,将解压后的文件夹重命名为opencv3
2.2 新建build文件夹
进入到解压的文件夹下,新建一个build文件夹,文件结构如下
mkdir build
2.3 cmake编译
进入build
cd build
CMake configure,设置一些编译选项,可以根据需要调整,比如Release版还是Debug版
不需要编译contrib的话:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
需要编译contrib的话,指定它的代码路径,这里我把它解压缩后的文件放到了我们自己建的opencv3下:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.14/modules .. CMAKE_INSTALL_PREFIX=/usr/local ../opencv-3.4.14
只编译C++模块,禁用java和python的编译,参考https://answers.opencv.org/question/189150/compile-from-source-without-python-2-java-support/
sudo cmake -D CMAKE_BUILD_TYPE=Release -D \
OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.14/modules .. -D \
BUILD_opencv_java=OFF -D \
BUILD_opencv_python=OFF CMAKE_INSTALL_PREFIX=/usr/local ../opencv-3.4.14
进行编译,可以使用sudo make -j8 、sudo make -j4 、sudo make
sudo make -j8
sudo make install
用gedit打开/etc/ld.so.conf
在文件中加上一行 /usr/local/lib
其中/user/local是opencv安装路径也就是makefile中指定的安装路径
sudo gedit /etc/ld.so.conf
在末尾加入一行
include /usr/local/lib
修改后保存关闭,加载configure文件
sudo ldconfig
修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
然后在命令行中输入
source /etc/bash.bashrc
在命令行中输入
pkg-config opencv --modversion
首先进入到安装opencv的build目录下,执行卸载命令
sudo make uninstall
然后删除build文件夹
cd .. # 返回上一级文件夹
sudo rm -r build
之后需要清空 /usr中有关 opencv的东西(命令如下),但是在你执行上一步 sudo make uninstall 有的已经删除 /usr下相关opencv。这个情况因电脑而异。
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
chmod a+x /home/***/opencv ### ***表示用户名,注意换成自己的
rm -r /home/***/opencv
这样就卸载干净了
输入下面命令检查:
pkg-config opencv --libs
pkg-config opencv --modversion
PS:编译opencv3.2.0遇到的问题:
/home/qyz/Downloads/opencv3.2.0/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0
.download
,需要打开隐藏文件夹:Ctrl+H
,把下载的文件放进去就行sudo cmake -D CMAKE_BUILD_TYPE=Release -D \
> OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.2.0/modules .. -D \
> BUILD_opencv_java=OFF -D \
> BUILD_opencv_python=OFF -DENABLE_PRECOMPILED_HEADERS=OFF CMAKE_INSTALL_PREFIX=/usr/local ../opencv-3.2.0