\home\Anthony_cao\Anthony_cao.c 2019-08-11 12:57 采纳率: 100%
浏览 5235
已采纳

为什么Opencv3.4.0使用make编译时出现错误?

环境:Debian(Raspiberry Pi Buster)

cmake version: 3.0.2

gcc version: 8.2.0

python version: 3.7.2

make version: 4.2.1

本来计划用opencv基于python进行图像辨别

在使用cmake配置完成后使用make命令编译:

sudo make

编译到大约90%时,出现如下错误:

#这是之前很多条控制台信息中的warning
warning: cast between incompatible function types from ‘PyObject* (*)(PyObject*, PyObject*, PyObject*)’ {aka ‘_object* (*)(_object*, _object*, _object*)’} to ‘PyCFunction’ {aka ‘_object* (*)(_object*, _object*)’} [-Wcast-function-type]

#make错误,退出
make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
make: *** [Makefile:138: all] Error 2

如图(图1中使用了make -i选项忽略错误,继续编译剩余部分,但open_cv python3没有成功编译):

图片说明

(图2显示了make的错误)

图片说明

#忽略错误后出现的c++error
c++: error: Cmakefiles/opencv_python3.dir/__/src2/cv2.cpp.o No such file or dictionary

在网上看到的编译错误的例子都和这个有所区别,没有能够很好地解决问题。有的说这是gcc编译器的问题

希望各位大佬们能够帮忙分析一下错误的原因,因为我的项目急需配置好opencv,也没有其它更好的替代,谢谢~

  • 写回答

4条回答 默认 最新

  • P_B_Y 2019-09-03 16:31
    关注

    我和小伙伴解决了这个问题,我们的设备是树莓派3B。
    方案一:如果你不需要opencv4.X的版本。先需要安装opencv的依赖库,再使用sudo apt-get install python3-opencv,就可以安装opencv,
    并且不需要编译,opencv的版本是3.2.
    方案二:如果需要opencv4.1.0版本,编译的过程比较顺利,安装成功。具体的步骤可以在网上找找,注意最好使用32G的内存卡,不然后面会卡住。当然了,我们也没弄懂那个错误的原因,但是还是解决了错误。
    如果有大佬知道原因的话欢迎帮忙回答哈。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?
  • ¥50 cocos2d-x lua 在mac上接入lua protobuf?
  • ¥15 es 7.17.20版本生成时间戳
  • ¥15 wpf dategrid表头排序图标自定义
  • ¥15 xshell无法连接提示ssh服务器拒绝密码