【问题标题】:Issue installing Opencv on Raspberry Pi 4 with gnu compiler/default C++ library使用 gnu 编译器/默认 C++ 库在 Raspberry Pi 4 上安装 Opencv 时出现问题
【发布时间】:2020-08-03 18:58:44
【问题描述】:

我有带有 Raspbian 的 Raspberry Pi 4(更新到最新版本)并尝试获取 Opencv。我有 Python 2.7、所有依赖项等。我在虚拟环境中工作,但在非虚拟版本上安装了另一个版本,我得到了同样的错误。

(cv) pi@raspberrypi:~ $ cd ~/opencv-3.1.0/build
(cv) pi@raspberrypi:~/opencv-3.1.0/build $ make
[  2%] Built target libwebp
[  4%] Built target libjasper
[  7%] Built target IlmImf
[  7%] Built target opencv_highgui_pch_dephelp
[  7%] Built target pch_Generate_opencv_highgui
[  8%] Built target opencv_core_pch_dephelp
[  8%] Generating precomp.hpp.gch/opencv_core_RELEASE.gch
In file included from 
/usr/include/c++/8/bits/stl_algo.h:59,
             from /usr/include/c++/8/algorithm:62,
             from /home/pi/opencv-3.1.0/modules/core/include/opencv2/core/base.hpp:53,
             from /home/pi/opencv-3.1.0/modules/core/include/opencv2/core.hpp:54,
             from /home/pi/opencv-3.1.0/modules/core/include/opencv2/core/utility.hpp:52,
             from /home/pi/opencv-3.1.0/build/modules/core/precomp.hpp:49:
/usr/include/c++/8/cstdlib:75:15: fatal error: stdlib.h: 
No such file or directory
 #include_next <stdlib.h>
           ^~~~~~~~~~
compilation terminated.
make[2]: *** [modules/core/CMakeFiles/pch_Generate_opencv_core.dir/build.make:64: modules/core/precomp.hpp.gch/opencv_core_RELEASE.gch] 
Error 1
make[1]: *** [CMakeFiles/Makefile2:2336: modules/core/CMakeFiles/pch_Generate_opencv_core.dir/all] 
Error 2
make: *** [Makefile:163: all] Error 2

cv 是我的虚拟环境。错误发生在 pi 附带的默认 C++ 目录中的文件中。 c++标准库在同一个文件夹中找不到C标准库。我已经检查过它们都在那里并且都未经编辑。我想知道 gnu 编译器如何只能访问 C++ 目录的一部分。

【问题讨论】:

    标签: python opencv gcc raspberry-pi


    【解决方案1】:

    尝试禁用预编译头文件:

    -DENABLE_PRECOMPILED_HEADERS=OFF
    

    删除目录build

    试试这个:

    (cv) pi@raspberrypi:~ $ cd ~/opencv-3.1.0 
    (cv) pi@raspberrypi:~/opencv-3.1.0 $ mkdir build && cd build
    (cv) pi@raspberrypi:~/opencv-3.1.0/build $ cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_PRECOMPILED_HEADERS=OFF  <here_your_options>...
    (cv) pi@raspberrypi:~/opencv-3.1.0/build $
    (cv) pi@raspberrypi:~/opencv-3.1.0/build $ make
    (cv) pi@raspberrypi:~/opencv-3.1.0/build $ sudo make install
    

    【讨论】:

    • 我假设这是用 -D 添加到 cmake 指令的?对gnu不太熟悉。我试过了,并从控制台得到了以下信息。它可以找到我的python版本,并且我之前已经通过了这一步,所以cmake不允许你创建另一个makefile吗?以下是错误日志“确定包含文件 linux/videodev.h 是否存在失败,输出如下:更改目录:/home/pi/opencv-3.1.0/build/CMakeFiles/CMakeTmp”
    • 我还尝试删除所有内容并从头开始,这次将您的评论放入 cmake 文件中。它产生了一个 Makefile,但现在在尝试制作时错误发生得更快(0% 而不是 ~18%),我尝试使用较新版本的 Gnu 编译器制作 Makefile,但它说它无法识别格式的 Makefile。
    • @Bibambop64 我改进了响应。
    • 我删除了旧的构建文件夹,创建了一个新的空文件夹,使用我的偏好运行 cmake,运行 make,在同一个地方得到同样的错误 '[ 1%] 生成 precomp.hpp.gch/opencv_core_RELEASE .gch 在 /usr/include/c++/8/bits/stl_algo.h:59 中包含的文件中,从 /usr/include/c++/8/algorithm:62 中,[从该文件夹重复到该文件夹​​等] /usr/include/c++/8/cstdlib:75:15:致命错误:stdlib.h:没有这样的文件或目录#include_next '
    • 我有 gnu 9.1,是否值得尝试使用它?我相信 Raspbian 只有 8.3。另外我不知道如何编写语法,但知道它类似于 g++-9.1 -std=c++17 -Wall -pedantic CMakeFiles -o [directory its in?]
    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多