Error compiling OpenCV, fatal error: stdlib.h: No such file or directory

后端 未结 5 1252
孤街浪徒
孤街浪徒 2020-12-03 05:06

I\'m trying to compile OpenCV. I\'ve tried the master branch (which is currently on commit dc9602e) and version/tag 3.1.0. I\'m using Fedora 24, I first tried using gcc that

相关标签:
5条回答
  • 2020-12-03 05:18

    I am on Manjaro Linux and this problem do exists on my system because of TBBConfig.cmake file which is a part of Intel-TBB library and contains modification to path of include folder path at line 56:

    set_target_properties(TBB::${_tbb_component} PROPERTIES
                                      INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../../include")
    

    While -DENABLE_PRECOMPILED_HEADERS=OFF was already off in my case and didn't fix the issue, it seems that this flag -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON fixes it.

    0 讨论(0)
  • 2020-12-03 05:19

    Compiling from zip package (opencv-2.4.11) did not work for me but the latest version* from github repo gave me a successful build on ubuntu 17.04

    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
    

    Update: You might want to do git checkout 3.4 after git clone because the master branch has many new changes since I wrote this

    Note: ffmpeg is deprecated and optional so I have used WITH_FFMPEG=OFF flag
    Update: I could build with ffmpeg on 18.04, used WITH_FFMPEG=ON flag. Latest ffmpeg should work with 17.04 as well. Comment down if you were successful!

    *OpenCV commit id cca99bf8249387da9f79be8d549b2d49e39a0289

    Additional info: Dependencies I installed before compiling-

    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
    

    Hope this helps someone in future!

    0 讨论(0)
  • 2020-12-03 05:26

    For me this:

    [ 33%] Building CXX object 
    /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-g++    @CMakeFiles/Transform360.dir/includes_CXX.rsp -std=c++11  -O3 -DNDEBUG   -o CMakeFiles/Transform360.dir/Library/VideoFrameTransform.cpp.obj -c /home/rdp/ffmpeg-windows-build-helpers/sandbox/win64/transform360_git/Transform360/Library/VideoFrameTransform.cppCMakeFiles/Transform360.dir/Library/VideoFrameTransform.cpp.obj
    In file included from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/ext/string_conversions.h:41,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/bits/basic_string.h:6391,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/string:52,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/stdexcept:39,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/array:39,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/tuple:39,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/bits/stl_map.h:63,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/map:61,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/win64/transform360_git/Transform360/Library/VideoFrameTransform.h:18,
                     from /home/rdp/ffmpeg-windows-build-helpers/sandbox/win64/transform360_git/Transform360/Library/VideoFrameTransform.cpp:14:
    /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
     #include_next <stdlib.h>
                   ^~~~~~~~~~
    compilation terminated.
    

    meant "edit CMakeFiles/Transform360.dir/includes_CXX.rsp and replace -isystem with -I" hint from here

    0 讨论(0)
  • 2020-12-03 05:29

    Try by disabling pre-compiled headers, either from cmake-gui or using the command line parameter

    -DENABLE_PRECOMPILED_HEADERS=OFF
    
    0 讨论(0)
  • 2020-12-03 05:29

    For archlinux distro like Manjaro the flags -D ENABLE_PRECOMPILED_HEADERS=OFF and -D CMAKE_NO_SYSTEM_FROM_IMPORTED=ON fixed it with success.

    I also got problems with blas and cblas during compilation. I linked cblas by adding CMAKE_EXE_LINKER_FLAGS=-lcblas.

    0 讨论(0)
提交回复
热议问题