Как заставить 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 вручную или с помощью управления пакетами.
- Откройте NetBeans, затем выполните следующие действия: выберите "Сервис" -> "Параметры" -> C/C++ -> "Помощь по коду" -> добавить "Включить каталоги" (для меня /usr/local/include/opencv)
- Создайте новый проект, затем: щелкните правой кнопкой мыши Имя проекта -> Свойства -> Создать -> Компилятор C / C++ -> Включить каталоги Включить каталоги: /usr/local/include/opencv
- Щелкните правой кнопкой мыши Имя проекта -> Свойства -> Создать -> компоновщик -> Включить каталоги: /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