在Ubuntu下编译基于OpenCV和ROS的项目

问题描述 投票:0回答:2

在我的项目上运行 CMake(实际上是 rosmake)时收到错误。我已经安装了 OpenCV,但出现以下错误:

Linking CXX shared library ../lib/libCornerHelper.so
  /usr/bin/ld: cannot find -lopencv_contrib
  /usr/bin/ld: cannot find -lopencv_legacy
  /usr/bin/ld: cannot find -lopencv_stitching
  /usr/bin/ld: cannot find -lopencv_gpu
  /usr/bin/ld: cannot find -lopencv_objdetect
  /usr/bin/ld: cannot find -lopencv_calib3d
  /usr/bin/ld: cannot find -lopencv_features2d
  /usr/bin/ld: cannot find -lopencv_video
  /usr/bin/ld: cannot find -lopencv_highgui
  /usr/bin/ld: cannot find -lopencv_ml
  /usr/bin/ld: cannot find -lopencv_imgproc
  /usr/bin/ld: cannot find -lopencv_flann
  /usr/bin/ld: cannot find -lopencv_core
  collect2: ld returned 1 exit status
  make[3]: *** [../lib/libCornerHelper.so] Error 1

有谁知道如何解决这个问题吗?

opencv ubuntu cmake
2个回答
2
投票

显然,他找不到 opencv 来链接到你的项目。您是否将其安装在 /usr 或 /usr/local 以外的其他位置?

如果是,则需要添加LD_LIBRARY_PATH变量的路径等。 当您运行此命令时,您的系统会说什么?

pkg-config --cflags --libs opencv

如果您得到类似的信息,则说明您的系统正常。

-I/opt/opencv/include/opencv -I/opt/opencv/include  -L/opt/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

但是如果你不这样做,你的系统就无法找到它,cmake也找不到它:

Package opencv was not found in the pkg-config search path. Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found

0
投票

如果您在 ROS 中使用 OpenCV,并且您已在 manifest.xml 文件中声明了对 opencv2 的依赖关系,则应自动选择适当的链接标志和路径。

如果您仍然遇到问题,我建议您搜索ROS Answers,如果您没有找到任何内容,请在那里提出您的问题。这是官方 ROS 支持论坛,可能会为您提供比 StackOverflow 更好的 ROS 特定问题的答案。

© www.soinside.com 2019 - 2024. All rights reserved.