ubuntu20.04安装OpenCV4.4.0编译时出现make: *** No targets specified and no makefile found. Stop.的解决方法

笔者安装opencv4.4.0时,看到教程上说

sudo cmake \

-D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local \

...

-D OPENCV_EXTRA_MODULES_PATH=/home/optic_css/opencv4.4.0/opencv_contrib-4.4.0/modules/ \

...

在这样进行之后当我编译

make -j8
sudo make install

会出现

make: *** No targets specified and no makefile found. Stop.

修改为

cmake \
  -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv \
  
  -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules/ \
  
  ..

之后再执行

make -j8
sudo make install

编译就成功

原因如下
OPENCV_EXTRA_MODULES_PATH=/home/optic_css/opencv- 4.4.0/opencv_contrib-4.4.0/modules/ \

就是这句,在cmake时告警找不到文件;

这句/home/optic_css这不是每个人计算机都一样,

虽然有教程说/opencv_contrib-4.4.0/modules/ 可以放在任何地方,但是cmakelist却没有很好的匹配

我们没有optic_css这个路径,所以就错了

我直接用当前路径的,上一级路../ 用相对路径绕过了这个问题

当前路径是/build
上级路径../opencv_contrib-4.4.0/modules/ \

但相对路径这种描述,系统是认可的

所以从严谨的角度和实用性的角度,相对路径就稳妥很多,在谁的机器上装都一样

到这里这个问题就解决了,

此外在安装时我还加了opencv的安装路径,因为在默认usr/local中include,lib,和,bin三个文件夹会和系统的其他文件夹混合在一起不易区分。所以添加以后opencv使用的lib就清晰了

具体来说就是在所有地方修改/usr/local/lib 为 /usr/local/opencv/lib

在local文件下下混有很多其他文件,增加opencv路径后就容易区分了,最简单用途,删除opencv就非常容易,把这个文件夹直接删除就可以了

opencv的完整安装过程可以参考opencv4.4.0安装

你可能感兴趣的:(opencv,ubuntu)