Возможный дубликат:
OpenCV на Ubuntu 11.10
Мне очень тяжело пытаться установить OpenCV в Ubuntu. Я считаю, что я уже установил OpenCV; Тем не менее, я пытаюсь скомпилировать один из примеров программы kalman.cpp с Eclipse, и я не могу его скомпилировать. Я считаю, что моя проблема — связь с библиотеками.
Я видел много учебников, и я не понимаю, почему после установки opencv на мой компьютер, я получаю следующий вывод после использования команды pkg-confi opencv --libs
:
manuel@manuel:~$ sudo pkg-config opencv --libs
/usr/local/lib/libopencv_calib3d.so
/usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_features2d.so
/usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so
/usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so
/usr/local/lib/libopencv_objdetect.so
/usr/local/lib/libopencv_photo.so
/usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_ts.so
/usr/local/lib/libopencv_video.so
/usr/local/lib/libopencv_videostab.so
Каждый учебник там библиотеки выглядят как:
-L/where/you/have/installed/opencv/lib -lcxcore -lcv -lhighgui -lcvaux
Это действительно раздражает, потому что Eclipse не может найти библиотеку как libopencv_contrib.so. Это ждет чего-то как -lopencv_contrib
Я очень ценю помощь. Пожалуйста, дайте мне знать, что я делаю неправильно.
Я никогда не использовал OpenCV с Eclipse. Я в основном скомпилировал его, используя gcc или g ++ (в зависимости от c или C ++) файл.
для файла C,
$ gcc -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.c .c` opencvtest.c `pkg-config --libs opencv`
для файла C ++,
$ g++ -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.cpp .cpp` opencvtest.cpp `pkg-config --libs opencv`
Для получения дополнительной информации см. http://jayrambhia.wordpress.com/2012/05/08/beginning-opencv/
Если вам это удобно, я не думаю, что вам нужно использовать Eclipse.
Надеюсь это поможет.
Для ссылки на библиотеку необходимо указать путь к каталогу, в котором она находится, используя -L /path/to/libraries
флаг.
Вам также нужны определенные библиотеки, которые вы хотите использовать -l my_library
,
Обычно вам также необходимо указать необходимые пути включения, используя -I /path/to/headers
pkg-config
может быть использован как помощник для этого, так как он возвращает точные параметры, которые вам нужны для использования библиотеки.
Вы должны использовать это так:
echo `pkg-config opencv --cflags --libs`
соответственно
g++ my_first_opencv_app.cc `pkg-config opencv --cflags --libs`
который в моей системе оценивается как
g++ my_first_opencv_app.cc -I/usr/include/opencv -lml -lcvaux -lhighgui -lcv -lcxcore
Чтобы он работал с eclipse, вам, вероятно, нужно указать путь включения (/usr/local/include/opencv
?), путь к библиотеке (/usr/local/lib
?) и нужные вам библиотеки через какой-то элемент GUI где-то в настройках проекта. Вам, вероятно, не нужно pkgconfig
затем.