未定义的符号:_ZN2cv3Mat10deallocateEv

时间:2015-08-19 14:22:15

标签: python c++ opencv extend

我一直试图用C ++代码扩展我的python脚本。我能够用简单的C ++库(print" hello world")来做到这一点。我按照以下链接中的教程进行了操作:

http://www.tutorialspoint.com/python/python_further_extensions.htm

当我尝试添加到我的C ++代码opencv库时,我遇到了以下问题: ImportError:/usr/local/lib/python2.7/dist-packages/kalman.so:undefined symbol:_ZN2cv3Mat10deallocateEv

我在互联网上搜索了很多解决方案,我发现了一个没有为我锻炼的常见答案: "我能够通过转到/ usr / lib64 / pkgconfig并修改opencv.pc来明确拥有所有库来解决这个问题。我还必须将插件从/usr/lib/gstreamer-0.10移到/usr/lib64/gstreamer-0.10"

请注意我使用的是ubuntu 14.04 LTS 64位,我打算稍后在运行Raspbian OS的raspberry pi模型B上运行我的代码。

谢谢。

NJ

2 个答案:

答案 0 :(得分:1)

使用kalman.so检查您的共享资源库ldd,如下所示:

 $ ldd kalman.so

你会发现你错过了一些图书馆。这意味着您必须为链接阶段代码中使用的库之一提供一些正确的路径。

之类的东西
 $ ...the way you do linking ... -L path_to_the_missing_library

有关详细信息,请参阅此link

答案 1 :(得分:0)

我遇到了与您相同的问题,最后我发现这是因为编译时没有添加opencv的链接库。编译c ++源文件时,请尝试添加“ opencv_core”或其他相关库。 希望对您有所帮助。