Проблема с cmake и OpenCV 2.0 в Ubuntu - PullRequest
3 голосов
/ 25 мая 2011

Доброй ночи, я работаю в проекте, где мы используем Cmake и OpenCV 2.0 в Ubuntu 10.04, каждый в команде (мы - команда по борьбе с мышью) может скомпилировать код просто отлично, но я не могу. Вот что Cmake говорит мне:

tiago@tiago-laptop:~/bioloid/build$ cmake ..
-- Checking GNUCXX version 3/4 to determine  OpenCV /opt/net/ path
CMake Error at CMakeModules/FindOpenCV.cmake:348 (MESSAGE):
OpenCV required but some headers or libs not found.  Please specify it's
location with OpenCV_ROOT_DIR env.  variable.
Call Stack (most recent call first):
CMakeLists.txt:45 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!

Если я попытаюсь экспортировать переменную следующим образом:

export OpenCV_ROOT_DIR=/usr/local/lib

Он продолжает выдавать ту же ошибку, это вывод из pkg-config --cflags --libs opencv:

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

Никто в команде не знает, что делать, я уже удалил и заново установил opencv, есть ли вероятность, что это связано с тем, что на моем компьютере также установлена ​​opencv 2.2?

1 Ответ

0 голосов
/ 08 августа 2012

Поскольку вы используете пользовательский макрос Find для поиска opencv (CMakeModules / FindOpenCV.cmake), вы должны на самом деле проверить, какие библиотеки требуется для поиска этого макроса.Похоже, что этот макрос на самом деле находится под вашим контролем, я бы просто добавил отладочные сообщения к его обработке, чтобы выяснить, в какой момент он завершается с ошибкой.Если макрос использует вызов MARK_AS_ADVANCED, хорошей стратегией может быть распечатка всех переменных, которые передаются в этот макрос.Все переменные должны иметь значение, которое не является пустым, ложным или XXX-NOTFOUND.

Кроме того, предоставление кода этого макроса поиска, доступного нам, поможет в отладке.

...