2015-06-02 3 views
1

Я получаю сообщение об ошибке при компиляции кода C++.Неопределенная ссылка на `cvCreateBGCodeBookModel '

$g++ basic100.cpp -o test -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_objdetect 
/tmp/ccWqj7E2.o: In function `main': 
basic100.cpp:(.text+0x67): undefined reference to `cvCreateBGCodeBookModel' 
basic100.cpp:(.text+0x2c6): undefined reference to `cvBGCodeBookUpdate' 
basic100.cpp:(.text+0x31d): undefined reference to `cvBGCodeBookClearStale' 
basic100.cpp:(.text+0x374): undefined reference to `cvBGCodeBookDiff' 
basic100.cpp:(.text+0x3c8): undefined reference to `cvSegmentFGMask' 
collect2: error: ld returned 1 exit status 

Код работал нормально на ноутбуке моего друга. Моя система - 32-битный Linux Mint, в то время как у них 64bit Ubuntu 14.04. Команда

компиляции используется в ноутбуке моего друга $ г ++ -o FFF basic100.cpp pkg-config --cflags --libs opencv

Это, как я использовал cvCreateBGCodeBoolModel()

(model definition :CvBGCodeBookModel* model = 0;//outside main()) 

    model = cvCreateBGCodeBookModel(); 
+0

ли гугле что-нибудь? – simonwo

+0

Похоже, вам не хватает одной из библиотек, включенных 'pkg-config --cflags'. Проверьте на компьютере вашего друга списки библиотек 'pkg-config'. – molbdnilo

+0

Спасибо molbdnilo, Попытка выяснить проблему с cflags, Я, наконец, приземлился по ошибке в ffmpeg. Но, наконец, я переустановил систему с помощью ubuntu 14.04, И теперь все работает нормально. Я также чувствую, что мой код (вычитание фона) не работает с Opencv 3.0. –

ответ

0

Когда я запустить команду

grep cvCreateBGCodeBookModel /usr/lib/x86_64-linux-gnu/libopencv_*.so 

Получать результаты

Binary file /usr/lib/x86_64-linux-gnu/libopencv_legacy.so matches 

Так что я предполагаю, что в компиляции отсутствует флаг -lopencv_legacy. Но у меня 64-битная система.

Вы можете проверить и посмотреть, работает ли это?

+0

Извините, работая над той же проблемой в течение долгого времени, я был многоуровневым и установил ubuntu 14.04, теперь все работает нормально. Так что я не могу это проверить. –

0

Может быть, вам не хватает некоторых из заголовка files.try делает структуру кодовой книги самостоятельно .с OpenCV 3.0 код не будет работать, так как там вы должны использовать класс BackgrundSubtractorMOG

Смежные вопросы