OpenCV Linux 安装 Make出错
执行完CMake之后再执行make时遇到以下错误
[ %] Generating precomp.hpp.gch/opencv_core_Release.gch
In file included from /usr/include/c++//bits/stl_algo.h::,
from /usr/include/c++//algorithm:,
from /opt/opencv/opencv-3.1./modules/core/include/opencv2/core/base.hpp:,
from /opt/opencv/opencv-3.1./modules/core/include/opencv2/core.hpp:,
from /opt/opencv/opencv-3.1./modules/core/include/opencv2/core/utility.hpp:,
from /opt/opencv/build/modules/core/precomp.hpp::
/usr/include/c++//cstdlib::: fatal error: stdlib.h: 没有那个文件或目录
#include_next <stdlib.h>
^
compilation terminated.
modules/core/CMakeFiles/pch_Generate_opencv_core.dir/build.make:: recipe for target 'modules/core/precomp.hpp.gch/opencv_core_Release.gch' failed
make[]: *** [modules/core/precomp.hpp.gch/opencv_core_Release.gch] Error
CMakeFiles/Makefile2:: recipe for target 'modules/core/CMakeFiles/pch_Generate_opencv_core.dir/all' failed
make[]: *** [modules/core/CMakeFiles/pch_Generate_opencv_core.dir/all] Error
Makefile:: recipe for target 'all' failed
make: *** [all] Error
这是由于gcc6已经吧stdlib.h纳入了libstdc++以进行更好的优化,C Library的头文件stdlib.h使用 Include_next,而include_next对gcc系统头文件路径很敏感。
推荐的修复方法是不要把include路径作为系统目录,而是使用标准方式包含include 目录
翻译自 https://bugs.webkit.org/show_bug.cgi?id=161697
原文说明:
Trying to build WebKitGTK+ with GCC I got this error: In file included from /home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/sysroots/qemux86/usr/include/c++/6.2./ext/string_conversions.h::,
from /home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/sysroots/qemux86/usr/include/c++/6.2./bits/basic_string.h:,
from /home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/sysroots/qemux86/usr/include/c++/6.2./string:,
from /home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/work/i586-oe-linux/webkitgtk/2.12.-r0/webkitgtk-2.12./Source/ThirdParty/ANGLE/src/common/debug.h:,
from /home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/work/i586-oe-linux/webkitgtk/2.12.-r0/webkitgtk-2.12./Source/ThirdParty/ANGLE/src/common/mathutil.h:,
from /home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/work/i586-oe-linux/webkitgtk/2.12.-r0/webkitgtk-2.12./Source/ThirdParty/ANGLE/src/common/mathutil.cpp::
/home/igalia/clopez/yocto/commit-builds/meta-webkit/builds/qemux86-/tmp-glibc/sysroots/qemux86/usr/include/c++/6.2./cstdlib::: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h> The issue seems to be that GCC has now introduced stdlib.h in libstdc++ for better compliance and its including the C library stdlib.h using include_next which is sensitive to order of system header include paths. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129 The recommended way to fix this is to stop adding include directories as system ones (-isystem) and instead use the standard way to include directories (-I) The openembedded project is carrying this downstream patch against WebKitGTK+ 2.12 with the above fix: http://git.openembedded.org/openembedded-core/tree/meta/recipes-sato/webkit/files/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch
OpenCV对gcc6支持不完善,导致gcc不兼容OpenCV
解决方法:卸载Ubuntu 16,使用Ubuntu 14
===========================================================
以上解法其实没有必要,gcc6并不是不能编译OpenCV 3,加入以下编译选项即可
-DENABLE_PRECOMPILED_HEADERS=OFF
知识来源:https://www.cnblogs.com/wuchaodzxx/p/8418980.html
感谢提供解法。
OpenCV Linux 安装 Make出错的更多相关文章
- Linux 安装OpenSSL出错的解决方法
以前编译php没有 –with–openssl 现在要使用到 openssl ,phpinze扩展安装,但是在make时候报错 今天找这个在网上找了大半天,最后总结应该是php版本本身的问题,错误是p ...
- linux安装命令出错(could not resolve host mirrorlist.centos.org)
本次问题出现在虚拟机安装的centos7系统之后,使用yum命令安装wget命令(yum -y install wget),出现could not resolve host mirrorlist.ce ...
- OPENCV Linux安装
https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
- linux安装curl出错
今天配置一台server的php支持curl的时候, 出现如下报错 checking for cURL in default path... not foundconfigure: error: Pl ...
- Linux安装软件出错
1.Delta RPMs disabled because /usr/bin/applydeltarpm not installed. yum provides '*/applydeltarpm' # ...
- Anaconda+linux +opencv+dlib安装
准备文件Anaconda: https://www.anaconda.com/download/ 我下载的时最新的 64-Bit (x86) Installer (524 MB) 然后在下载的anac ...
- linux安装及配置c++的opencv库
linux安装及配置c++的opencv库 前言: 最近想搞个机器视觉的比赛,要求是linux+opencv环境,没有做过opencv开发的我配置环境就配了两天,看来很多乱七八糟的博客,终于装好了.网 ...
- linux 安装了Linux generic mysql 出错
在一次安装 Linux generic cmake 出错 提示:CMake Error: The source directory "/usr/local/src" does no ...
- 阿里云Linux安装软件镜像源
阿里云Linux安装软件镜像源 阿里云是最近新出的一个镜像源.得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云Linux安装镜像源地址:http://mirrors.aliyun. ...
随机推荐
- PHP安装rrdtool扩展
首先,我的环境是Centos 6.5 PHP版本是5.51.首先安装rrdtool需要的依赖库文件 yum -y install pango* 2.先服务器安装rrdtool wget http ...
- coreseek实战(二):windows下mysql数据源部分配置说明
coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...
- apache的虚拟目录的配置
第一步:在httpd.conf底部添加以下代码.表示添加虚拟目录 1 <IfModule dir_module> #direcotory相当于是欢迎页面 DirectoryIndex in ...
- 自动化运维工具之ansible(转)
原文链接:http://os.51cto.com/art/201409/451927_all.htm
- Spring JDBC 访问MSSQL
在Spring中对底层的JDBC做了浅层的封装即JdbcTemplate,在访问数据库的DAO层完全可以使用JdbcTemplate完成任何数据访问的操作,接下来我们重点说说Spring JDBC对S ...
- HTML5的touch事件
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...
- 【洛谷P2296】寻找道路
反正图两边bfs #include<iostream> #include<cstdio> #include<queue> using namespace std; ...
- MySQL双机热备份
系统: CentOS release 6.6 (Final) MySQL: mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) ...
- 【二分答案】【贪心】bzoj3969
http://www.cnblogs.com/mmlz/p/4497118.html #include<cstdio> #include<algorithm> using na ...
- 10个超级有用、必须收藏的PHP代码样例
在PHP的流行普及中,网上总结出了很多实用的PHP代码片段,这些代码片段在当你遇到类似的问题时,粘贴过去就可以使用,非常的高效,非常的省时省力.将这些程序员前辈总结出的优秀代码放到自己的知识库中,是一 ...