Как заставить opencv включить работу в kubuntu? (Включает решение о том, как включить и связать в NetBeans 6.7.1)

Я установил библиотеки OpenCV C из управления пакетами в мой Kubuntu 9.10. Я написал небольшую программу для модификации изображений, которая использует эти библиотеки, но я не могу скомпилировать ее, потому что каждый раз, когда я пытаюсь скомпилировать, я получаю сообщение об ошибке, что функции из библиотеки OpenCV не могут быть найдены.

Эти заголовочные файлы находятся в папке /usr/include/opencv/ но все же компилятор говорит, что функции не могут быть найдены.

Я попытался включить их по основным

#include <highgui.h>
#include <cv.h>

Команды в NetBeans (и я установил NetBeans для поиска файлов заголовков из этого конкретного каталога), а также попытался включить их с полным путем.

#include </usr/include/opencv/highgui.h>
#include </usr/include/opencv/cv.h>

Также я попытался скомпилировать мой исходный файл в консоли (с указанием полного пути), но снова я получил то же сообщение об ошибке, что функции из этих библиотек не могут быть найдены.

Редактировать:

Я получаю сообщение об ошибке:

undefined reference to 'function_name'

Я получаю эту ошибку для каждой функции, которую пытаюсь использовать из этой библиотеки opencv.

Есть идеи, как решить эту проблему?


Редактировать II:

Если кто-то еще использует NetBeans 6.7.1 и имеет ту же проблему, вот копия решения, вставленная с другого сайта:

Здесь я предполагаю, что вы успешно установили библиотеку opencv вручную или с помощью управления пакетами.

  1. Откройте NetBeans, затем выполните следующие действия: выберите "Сервис" -> "Параметры" -> C/C++ -> "Помощь по коду" -> добавить "Включить каталоги" (для меня /usr/local/include/opencv)
  2. Создайте новый проект, затем: щелкните правой кнопкой мыши Имя проекта -> Свойства -> Создать -> Компилятор C / C++ -> Включить каталоги Включить каталоги: /usr/local/include/opencv
  3. Щелкните правой кнопкой мыши Имя проекта -> Свойства -> Создать -> компоновщик -> Включить каталоги: /usr/local/include/opencv Дополнительные параметры: -I/usr/local/include/opencv -L/usr/local/lib -lcxcore -lcv -lhighgui -lcvaux -lml

Затем написание программы и компиляции!

2 ответа

Решение

"неопределенная ссылка на" является ошибкой компоновщика. Вы забыли связать свое приложение с библиотеками OpenCV. Убедитесь, что вы связываетесь с cv и highgui (-lcv -lhighgui) или используете вызов pkg-config, предоставленный Тобу. Я бы также запросил более подробные сообщения об ошибках.

OpenCV использует pkg-config, стандартный способ найти библиотеки и заголовки на Unix. Вы можете запустить (не проверено):

make CFLAGS="$(pkg-config --cflags --libs opencv)" your-program
Другие вопросы по тегам