CPP中OpenCV和pcl库之间的冲突

Posted

技术标签:

【中文标题】CPP中OpenCV和pcl库之间的冲突【英文标题】:Conflict between OpenCV and pcl library in CPP 【发布时间】:2021-07-22 08:16:48 【问题描述】:
objc[5267]: Class vtkCocoaTimer is implemented in both /usr/local/opt/vtk/lib/libvtkRenderingUI-9.0.1.dylib (0x11bceb438) and /usr/local/opt/vtk@8.2/lib/libvtkRenderingOpenGL2-8.2.1.dylib (0x1100d5e90). One of the two will be used. Which one is undefined.
objc[5267]: Class vtkCocoaFullScreenWindow is implemented in both /usr/local/opt/vtk@8.2/lib/libvtkRenderingOpenGL2-8.2.1.dylib (0x1100d5f08) and /usr/local/opt/vtk/lib/libvtkRenderingOpenGL2-9.0.1.dylib (0x11bc07240). One of the two will be used. Which one is undefined.
objc[5267]: Class vtkCocoaServer is implemented in both /usr/local/opt/vtk@8.2/lib/libvtkRenderingOpenGL2-8.2.1.dylib (0x1100d5f30) and /usr/local/opt/vtk/lib/libvtkRenderingOpenGL2-9.0.1.dylib (0x11bc07268). One of the two will be used. Which one is undefined.
objc[5267]: Class vtkCocoaGLView is implemented in both /usr/local/opt/vtk@8.2/lib/libvtkRenderingOpenGL2-8.2.1.dylib (0x1100d5f80) and /usr/local/opt/vtk/lib/libvtkRenderingOpenGL2-9.0.1.dylib (0x11bc072b8). One of the two will be used. Which one is undefined.
zsh: segmentation fault  ./stereo

当我在我的 C++ 代码中使用 opencv 和 pcl lib 时,它正在成功构建,但是在执行时,我在使用 vtk 时遇到了这个错误。在我的系统中,pcl 使用 vtk@8.2,opencv 使用 vtk@9.0。我尝试删除一个版本的 vtk,但它没有构建那么如何解决这个问题?

【问题讨论】:

它看起来像一些项目配置问题,您链接别名和实际库,或者您安装并链接了两个 libvtk 版本.. 【参考方案1】:

这是由于多个 vtk 版本。在运行 opengl 时,opencv 和 pcl 多次调用 opengl,这导致了一个包含循环。为了解决这个问题,我们必须在构建 OpenCV 时关闭 vtk 的依赖。

【讨论】:

以上是关于CPP中OpenCV和pcl库之间的冲突的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 OpenCV libjpeg 和 fltkjpeg 之间的库冲突?

如何解决 Opencv 和 GTKmm 之间的冲突?

Project2.exe中的C++ OpenCV“找不到或打开PDB文件”和“(opencv_world310.dll):访问冲突读取位置

如何安装opencv

opencv使用问题总结

学习 opencv---(11)OpenC 边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器