获取opencv源码 git clone git@github.com:opencv/opencv.git 获取opencv_contrib源码 git clone git@github.com:opencv/opencv_contrib.git 列举所有tag git tag -l
这里以安装3.4.7为例 git checkout tags/3.4.7
opencv_contrib同样使用此方法检出对应的版本源码,注意版本号严格一致,否则会出现问题
为了避免污染文件,首先创建一个用于存放编译产生文件的目录 mkdir build cd build
在该目录下运行cmake cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local/opencv347 -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ ..
-DOPENCV_GENERATE_PKGCONFIG=ON opencv4默认不生产pc文件,需要开启此项
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv347 opencv的安装路径,可以省略,将安装到默认/usr/local目录
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ 将 opencv 和 opencv_contrib 一起编译,如果不需要 opencv_contrib 可以将此项去掉
然后是一段等待
成功后执行如下命令开始编译,这里开启了8个线程 make -j8
可能会出现如下错误
[ 8%] Building CXX object 3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/util/type_resolver_util.cc.o
[ 8%] Building CXX object 3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/wire_format.cc.o
[ 8%] Building CXX object 3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/wrappers.pb.cc.o
[ 8%] Linking CXX static library ../lib/liblibprotobuf.a
make[2]: 离开目录“/home/explorer/workbench/opensource/opencv/opencv/build”
[ 8%] Built target libprotobuf
make[1]: 离开目录“/home/explorer/workbench/opensource/opencv/opencv/build”
make: *** [Makefile:163:all] 错误 2
以及gcc fatal error
[ 1%] Building C object 3rdparty/ippiw/CMakeFiles/ippiw.dir/src/iw_image.c.o
In file included from /home/explorer/workbench/opensource/op