其他分享
首页 > 其他分享> > c – OpenCV将问题与ROS联系起来

c – OpenCV将问题与ROS联系起来

作者:互联网

我正在尝试编译this项目(按照给出的说明).当使用rosmake构建它时,我得到了一堆对cv :: String :: deallocate()的未定义引用和对cv :: String :: allocate(unsigned long)的未定义引用.我很奇怪我在这些函数中遇到错误,而其他OpenCV函数似乎正常工作.

我知道发生这种情况是因为链接器无法找到编译这些函数的对象,但我对ROS构建系统并不熟悉,也无法找到错误.

我已经尝试使用提供的CMakeLists.txt文件,还添加了find_package(OpenCV REQUIRED)和target_link_libraries(xxx xxx ${OpenCV_LIBRARIES}),但没有任何区别.我知道OpenCV已正确安装和编译(之前我已经使用过),而且我已经安装了ROS而没有任何问题.

我正在使用OpenCV 3,ROS Indigo,Ubuntu 14.04

解决方法:

我有这个完全相同的问题 – 相同的错误消息,相同的设置.我设法解决了它,虽然我不完全确定我所做的实际贡献的步骤.据我所知,这是由于OpenCV版本的冲突 – 我认为我的旧版OpenCV混乱了我的/usr/include和/usr/local.我卸载了所有OpenCV软件包(包括ROS软件包),包括我的源代码安装OpenCV3(也在/usr/local).然后我安装了ROS软件包vision_opencv,它似乎安装了OpenCV 2.4.8(顺便提一下LSD SLAM推荐的那个).当然,如果您需要OpenCV3用于其他事情,这可能会很烦人,但我现在将其作为我的主目录中的本地安装(我无法弄清楚如何让ROS链接到此).

我认为这解决了这个问题,剩下的唯一问题就是我收到了错误消息,说没有找到.这是因为程序包安装将其保留(类似于所有模块包含文件),而源代码安装的make install步骤将它们复制到父文件夹中.为了解决这个问题,我只是在使用它的唯一文件中编辑#include(lsd_slam_core / src / IOWrapper / OpenCV / ImageDisplay_OpenCV.cpp).这似乎解决了它!

我希望这有帮助,如果需要,我可以提供进一步的细节.

标签:ros,c,opencv,linker,ubuntu-14-04
来源: https://codeday.me/bug/20191008/1874133.html