Makefile:160: recipe for target 'all' failed (Ubuntu 16.06 + Opencv3.2)解决办法

本文解决了在安装Anaconda后,系统Python中的OpenCV无法正常使用的问题。提供了两种解决方案:一是编译时添加-DWITH_OPENMP=ON参数;二是从系统变量中删除Anaconda路径。同时介绍了如何在不修改环境变量的情况下使用Anaconda。
摘要由CSDN通过智能技术生成

前言

之前一直用的opencv 好好的,今天安装了anaconda之后,python中的opencv不能用了,即便是拷贝cv2.so之后也是不能用,问题如下:

这里写图片描述

根本原因

安装anaconda之后,很多默认的编译器都变成了anaconda自带的了,比如python和gcc等。那么系统中的python安装的东西自然是用不了的,刚开始没发现这个问题,一怒之下就把opencv给卸载了,当发现这个问题的时候,已经悔之晚矣,无奈重新安装。

注:opencv编译失败之后,其前面肯定有失败报错的地方,也就是解决问题和核心了,如上图中最后报错“Makefile:160: recipe for target ‘all’ failed”无法锁定问题在那儿,往上翻番看就能发现问题的原因,在继续解决就行了。

解决方案

通过一股查找之后,在博主(
https://stackoverflow.com/questions/40322301/compile-opencv-3-on-ubuntu-16-04-linking-error-usr-lib-x86-64-linux-gnu-libsox)中找到答案。

两种方式:

第一种方法:

增加  -D WITH_OPENMP=ON

第二种方法

从系统变量中删除Anaconda路径
sudo gedit ~/.bashrc

注释掉如下两行

#export PATH="/home/lab/SOFT_APP/Anaconda2/bin:$PATH"
#export PATH="/home/lab/SOFT_APP/Anaconda2/bin:$PATH"

立即生效:

source ~/.bashrc

此时在编译即可。

Anaconda该怎么使用

有些同学可能会问删除了Anaconda的环境变量之后怎么用,其实直接在Anaconda的目录下就可以使用:

bin/conda info -e
source bin/activate tf_v0.12.0rc0
source bin/deactivate 

同样可以使用

根据提供的引用内容,"Makefile:160: recipe for target 'all' failed make: *** [all] Error 2"是一个编译错误信息。这个错误通常表示在执行make命令时出现了问题,导致无法生成目标文件。这可能是由于以下原因之一引起的: 1. 缺少依赖项:在Makefile中,如果某个目标文件依赖于其他文件,但这些文件不存在或未正确配置,就会导致编译错误。请确保所有依赖项都存在并正确设置。 2. 语法错误:Makefile是一个文本文件,其中包含一系列规则和命令。如果在Makefile中存在语法错误,例如缺少冒号、缩进错误等,就会导致编译错误。请检查Makefile中的语法错误并进行修正。 3. 编译器问题:有时候编译错误可能是由于编译器本身的问题引起的。尝试更新或更换编译器版本,以解决可能存在的问题。 解决这个错误的具体方法取决于你的具体情况和项目配置。你可以尝试以下几个步骤来解决这个问题: 1. 检查Makefile中的依赖项和语法错误,确保所有的依赖项都正确设置,并且没有语法错误。 2. 确保你的编译器已经正确安装,并且与你的项目兼容。如果可能的话,尝试更新或更换编译器版本。 3. 检查你的项目配置,确保所有的路径和设置都正确。 4. 如果以上步骤都没有解决问题,尝试在互联网上搜索类似的错误信息,看看其他人是如何解决的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值