首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译OpenCV时出错,致命错误: stdlib.h:没有这样的文件或目录

编译OpenCV时出错,致命错误: stdlib.h:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2016-10-26 12:56:53
回答 5查看 73.7K关注 0票数 35

我正在尝试编译OpenCV。我已经尝试过主分支(目前正在提交dc9602e)和version/tag 3.1.0。我用的是Fedora 24,我第一次试着用跟Fedora一起来的gcc (gcc (1996) 6.2.1 20160916 (RedHat6.2.1-2))。我也尝试了GCC 6.2.0,编译在我的机器上。

我使用的cmake参数如下:

代码语言:javascript
运行
复制
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON -DWITH_TBB=ON -DWITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON -DWITH_QT=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_EIGEN=ON -DWITH_OPENEXR=ON

cmake运行良好,然后运行make。无论OpenCV版本和gcc版本的交互与否,结果都是一样的:

代码语言:javascript
运行
复制
In file included from /usr/local/include/c++/6.2.0/bits/stl_algo.h:59:0,
                 from /usr/local/include/c++/6.2.0/algorithm:62,
                 from /home/dmelo/proj2/opencv/modules/core/include/opencv2/core/base.hpp:55,
                 from /home/dmelo/proj2/opencv/modules/core/include/opencv2/core.hpp:54,
                 from /home/dmelo/proj2/opencv/modules/highgui/include/opencv2/highgui.hpp:46,
                 from /home/dmelo/proj2/opencv/build/modules/highgui/precomp.hpp:45:
/usr/local/include/c++/6.2.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
                         ^
compilation terminated.

还有其他人在经历这种事吗?我该如何解决这个问题?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-10-26 20:19:23

尝试禁用预编译的头文件,无论是从cmake-gui还是使用命令行参数。

代码语言:javascript
运行
复制
-DENABLE_PRECOMPILED_HEADERS=OFF
票数 64
EN

Stack Overflow用户

发布于 2017-10-22 15:07:38

编译从压缩包(opencv-2.4.11)对我没有工作,但最新的版本*来自github回购给我一个成功的构建上的ubuntu17.04

代码语言:javascript
运行
复制
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir mybin
cd mybin
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_FFMPEG=OFF ..
make
sudo make install

更新:您可能希望在git clone之后执行git checkout 3.4,因为主分支自我编写这篇文章以来有许多新的更改

注意: ffmpeg是不推荐的,并且是可选的,所以我使用了WITH_FFMPEG=OFF标志。

更新:使用WITH_FFMPEG=ON标志,可以在18.04上使用ffmpeg构建。最新的ffmpeg应该也适用于17.04。如果你是成功的话,请发表评论!

*OpenCV提交id cca99bf8249387da9f79be8d549b2d49e39a0289

附加信息:编译前安装的依赖项-

代码语言:javascript
运行
复制
build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libtbb2 libtbb-dev

希望这对将来的人有帮助!

票数 8
EN

Stack Overflow用户

发布于 2019-11-14 07:20:20

我在Manjaro上,这个问题确实存在于我的系统中,因为TBBConfig.cmake文件是Intel-TBB库的一部分,包含对第56行中的include文件夹路径的修改:

代码语言:javascript
运行
复制
set_target_properties(TBB::${_tbb_component} PROPERTIES
                                  INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../../include")

虽然-DENABLE_PRECOMPILED_HEADERS=OFF在我的例子中已经关闭并且没有修复这个问题,但是这个标志-DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON似乎修复了它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40262928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档