【问题标题】:OpenCV Error while building on Raspberry PI在 Raspberry PI 上构建时出现 OpenCV 错误
【发布时间】:2019-12-08 21:25:58
【问题描述】:

当我在树莓派上使用 cmake 构建 opencv-3.2.0 时,在 99% 的安装过程中遇到了一个奇怪的错误。

我没有更改任何内容以不搞砸,但这似乎是一个简单的代码错误。

这是我的终端出现的错误

/home/pi/opencv-3.2.0/modules/python/src2/cv2.cpp: In function 
‘bool pyopencv_to(PyObject*, T&, const char*) [with T = 
cv::String; PyObject = _object]’:
/home/pi/opencv-3.2.0/modules/python/src2/cv2.cpp:730:34: error: 
invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
 char* str = PyString_AsString(obj);
In file included from /home/pi/opencv- 
3.2.0/modules/python/src2/cv2.cpp:1362:

这是 cv2.cpp 中的 pyopencv_to 函数

template<>
bool pyopencv_to(PyObject* obj, String& value, const char* name)
{
(void)name;
if(!obj || obj == Py_None)
    return true;
char* str = PyString_AsString(obj);
if(!str)
    return false;
value = String(str);
return true;
}

我应该手动更改代码吗?

【问题讨论】:

  • 在 raspbian 上不能通过 pacman 获得 OpenCV 吗?

标签: python c++ opencv cmake raspberry-pi


【解决方案1】:

这似乎是 OpenCV 中的一个错误;在opencv3/modules/python/src2/cv2.cpp 进行以下更改后,它为我编译。改变...

char* str = PyString_AsString(obj);

const char* str = PyString_AsString(obj);

【讨论】:

  • 谢谢,这似乎只发生在我发现的 rpi 中。奇怪,也许是编译器版本?
  • 我个人不知道。这可能是版本不匹配,但如果修复足够简单,我只需更改代码库。
  • 嗯,这对我来说有点多,因为我将它作为ExternalProject_Add 包含在我的 CMaktLists.txt 中,这样就无需手动安装不同的系统。我通过创建一个差异文件并使用 git apply 应用补丁来解决此问题。我仍然想知道为什么尽管 o_0 其他系统也可以这样。我怀疑只是不同的编译器标志/版本
  • ya 可能是编译器标志
猜你喜欢
  • 1970-01-01
  • 2021-04-16
  • 2015-06-15
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 2019-11-12
相关资源
最近更新 更多