Компиляция проекта на основе OpenCV и ROS в Ubuntu - PullRequest
0 голосов
/ 26 ноября 2011

Я получаю сообщение об ошибке при запуске 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

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Видимо, он не смог найти 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 голосов
/ 12 апреля 2012

Если вы используете OpenCV в ROS, соответствующие флаги и пути ссылки должны выбираться автоматически, если вы объявили зависимость от opencv2 в файле manifest.xml.

Если у вас все еще есть проблемы, я предлагаю вам поискать ROS Ответы и, если вы ничего не нашли, задать свой вопрос там. Это официальный форум поддержки ROS, который, скорее всего, даст вам лучший ответ на конкретные проблемы ROS, чем StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...