未定义符号:_ZN2cv3Mat10deallocateEv

undefined symbol: _ZN2cv3Mat10deallocateEv

我一直在尝试用 C++ 代码扩展我的 python 脚本。我能够使用 C++ 的简单库来做到这一点 (print "hello world")。我遵循了下面 link 中提供的教程:

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

当我尝试将 opencv 库添加到我的 C++ 代码时,我遇到了以下问题: 导入错误:/usr/local/lib/python2.7/dist-packages/kalman.so: 未定义符号:_ZN2cv3Mat10deallocateEv

我在互联网上搜索了很多解决方案,找到了一个不适合我的常见答案: "I was able to solve this by going to /usr/lib64/pkgconfig and modified opencv.pc to explicitly have all libraries. I also had to move the plugins from /usr/lib/gstreamer-0.10 to /usr/lib64/gstreamer-0.10"

请注意,我正在使用 ubuntu 14.04 LTS 64 位,我计划稍后在 raspberry pi 模型 B 运行ning 上 运行 我的代码RaspbianOS。

谢谢。

新泽西州

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

 $ ldd kalman.so

您会发现您缺少一些库。这意味着您必须在链接阶段为您在代码中使用的库之一提供一些正确的路径。像

 $ ...the way you do linking ... -L path_to_the_missing_library

更多信息,请参阅此link

我也遇到过和你一样的问题,最后发现是因为编译的时候没有加入opencv的链接库。尝试在编译c++源文件时添加"opencv_core"或其他相关库。 希望对您有所帮助。