В настоящее время я пытаюсь собрать и запустить пример программы фильтра kalman, найденной на https://docs.opencv.org/trunk/de/d70/samples_2cpp_2kalman_8cpp-example.html#a12
Когда я пытаюсь скомпилировать программу, я получаю следующий вывод:
g++ -o kalman kalman.o -lopencv_core -lopencv_tracking -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_videoio -lopencv_objdetect
/usr/bin/ld: kalman.o: undefined reference to symbol '_ZN2cv12KalmanFilter7predictERKNS_3MatE'
/usr/bin/ld: /usr/lib/libopencv_video.so.4.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:9: kalman] Error 1
Мне кажется, что в моем файле Makefile отсутствует библиотека ссылок, но я просмотрел всюду онлайн и, похоже, не могу ее найти.
Я попытался изменить порядок библиотек ссылок в переменной LIBS моего Makefile. Сначала я попытался поместить -lopencv_tracking (где я предполагаю, что функции фильтра Калмана) в конце списка ссылок, а затем попытался поместить его вторым в списке (прямо перед -lopencv_core). Оба дали одинаковую ошибку ссылки.
Вот Makefile, который я использую
CC=g++
TARGET=kalman
SRC=kalman.cpp
LIBS=-lopencv_core -lopencv_tracking -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_videoio -lopencv_objdetect
OBJ=kalman.o
%.o: %.cpp
$(CC) -c -o $@ $< $(LIBS)
kalman: $(OBJ)
$(CC) -o $@ $^ $(LIBS)
Программа должна работать правильно, без ошибок