Компиляция проекта на основе OpenCV и ROS в Ubuntu

Я получаю сообщение об ошибке при запуске 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 для ссылки на ваш проект. Вы установили его в другом месте, кроме / 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 

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

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