Я пытаюсь скомпилировать простое использование программы OpenCV в Ubuntu Quantal. Я установил все доступные пакеты OpenCV. Мой код следующий
#include <stdio.h>
#include <highgui.h>
#include <cv.h>
int main(int argc, char *argv[]) {
IplImage* img=0; /* pointer to an image */
printf("Hello\n");
if(argv[1] != 0)
img = cvLoadImage(argv[1], 0); // 1 for color
else
printf("Enter filename\n");
if(img != 0) {
cvNamedWindow("Display", CV_WINDOW_AUTOSIZE); // create a window
cvShowImage("Display", img); // show image in window
cvWaitKey(0); // wait until user hits a key
cvDestroyWindow("Display");
}
else
printf("File not found\n");
return 0;
}
И моя команда компиляции g++ -I/usr/include/opencv -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann main.cpp -o main
И я получаю следующие ошибки
/tmp/ccUQ4Tm4.o: In function `main':
main.cpp:(.text+0x45): undefined reference to `cvLoadImage'
main.cpp:(.text+0x6b): undefined reference to `cvNamedWindow'
main.cpp:(.text+0x7c): undefined reference to `cvShowImage'
main.cpp:(.text+0x86): undefined reference to `cvWaitKey'
main.cpp:(.text+0x90): undefined reference to `cvDestroyWindow'
collect2: ld returned 1 exit status
make: *** [all] Error 1
То, что я понимаю от ошибок выше, - то, что нет никакой проблемы, находящей библиотеку, но компилятор не может найти функции в ней. Можно ли выручить меня с этим?
Включите все ваши библиотеки в последнем.
например.
g++ -I/usr/include/opencv main.cpp -o main -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
Он разрешает символы, так как находит библиотеки в той же последовательности, как написано в командной строке.