2016-09-01 1 views
0

Я сделал программу, основанную на демо-программе на странице affdex git, найденной here. Это демо-версия «opencv-webcam-demo». В то время я запускал Ubuntu 14.04, и он работал нормально. Затем я обновился до Ubuntu 16.04, и теперь демо (даже без моих изменений) работает неправильно. Я попытался установить последние версии opencv и повысить и подтвердил, что они были установлены правильно, но я все еще получаю ту же проблему.Affdex 'opencv-webcam-demo' Аварии в Ubuntu 16.04

Вот результат при запуске программы в Ubuntu 16.04:

[email protected]:~/leepsProgram/build/opencv-webcam-demo$ ./opencv-webcam-demo --help 
Hit ESCAPE key to exit app.. 
Encountered an exception std::exception*** Error in `./opencv-webcam-demo': free(): invalid pointer: 0x0000000001c71ca8 *** 
======= Backtrace: ========= 
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7f0ce2798725] 
/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7f0ce27a0f4a] 
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f0ce27a4abc] 
./opencv-webcam-demo(_ZN5boost10filesystem4pathD1Ev+0x18)[0x469c86] 
/lib/x86_64-linux-gnu/libc.so.6(__cxa_finalize+0x9a)[0x7f0ce275b35a] 
/home/ethan/libraries/affdex-sdk/lib/libaffdex-native.so(+0x5273a3)[0x7f0ce642a3a3] 

Существовал также карты памяти, так что если что помогает то дайте мне знать, и я могу вставить, что здесь тоже.

До сих пор я пытался выяснить, какая часть кода работает и какая часть не работает, и обнаружил, что, если вы удалите boost из программы, он достигнет значения до тех пор, пока не будет указано, что Affdex должен указать путь к data, и в этот момент он выдает исключение Affdex, говоря, что путь данных должен быть не нулевым. Однако это не должно быть null, потому что я установил его в начале.

affdex::path DATA_FOLDER = "<path to data folder>"; 
... 
frameDetector->setClassifierPath(DATA_FOLDER); 

Тем не менее удаление ударов не является идеальным, поскольку оно уже закодировано для меня. Но если мне нужно удалить boost, я также должен решить эту проблему.

библиотек и их версий/версия ОС:

  • подталкивания 1.59.0

  • OpenCV 3.1.0

  • Affdex 3.1-396

  • Ubuntu 16,04

Являются ли эти библиотеки совместимыми с Ubuntu 16.04?

Спасибо за любую помощь. Это очень ценно.

ответ

1

Я думаю, проблема в том, что вы смешиваете библиотеки с компилированными с несовместимыми версиями libstdC++. Какова версия для компилятора, которую вы используете?

Текущая версия Linux SDK был скомпилирован с GCC 4.8

+0

Я использую cmake версию 3.5.1 –

+0

У меня есть аналогичная проблема, с похожим журналом ошибок. Пожалуйста, подумайте о том, чтобы обновить или найти лучший способ для версии C++. Многие люди пытаются использовать один и тот же код на C++ для тестирования. Я потратил много времени, чтобы понять, почему? – beahacker

0

Обновлено: Я решил эту проблему путем обновления SDK версии до последней версии (https://download.affectiva.com/linux/gcc-5.4/affdex-cpp-sdk-4.0-75-ubuntu-xenial-xerus-x86_64bit.tar.gz).

Учебник предоставил старую версию:

wget https://download.affectiva.com/linux/affdex-cpp-sdk-3.2-20-ubuntu-xenial-xerus-64bit.tar.gz 

У меня есть аналогичные проблемы, с аналогичными записями журнала ошибок. Пожалуйста, подумайте о том, чтобы обновить или найти лучший способ для версии C++. Многие люди пытаются использовать один и тот же код на C++ для тестирования. Я потратил много времени, чтобы понять, почему?

Debugging starts 
Hit ESCAPE key to exit app.. 
Initializing Affdex FrameDetector 
*** Error in `/home/aiq/Desktop/aiq_workspace/cpp-sdk-samples/build/opencv-webcam-demo/opencv-webcam-demo': munmap_chunk(): invalid pointer: 0x0000000000856e10 *** 
======= Backtrace: ========= 
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7ffff582c7e5] 
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x1a8)[0x7ffff5839698] 
/home/aiq/Desktop/aiq_workspace/cpp-sdk-samples/build/opencv-webcam-demo/opencv-webcam-demo(_ZN5boost10filesystem4pathD1Ev+0x18)[0x467948] 
/home/aiq/Desktop/aiq_workspace/affdex-sdk/lib/libaffdex-native.so(_ZN6affdex12DetectorBase17setClassifierPathERKSs+0xc6)[0x7ffff6f5061a] 
/home/aiq/Desktop/aiq_workspace/affdex-sdk/lib/libaffdex-native.so(_ZN6affdex8Detector17setClassifierPathERKSs+0x2f)[0x7ffff6f4abb1] 
/home/aiq/Desktop/aiq_workspace/cpp-sdk-samples/build/opencv-webcam-demo/opencv-webcam-demo(main+0xaed)[0x466110] 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7ffff57d5830] 
/home/aiq/Desktop/aiq_workspace/cpp-sdk-samples/build/opencv-webcam-demo/opencv-webcam-demo(_start+0x29)[0x465209] 

Пожалуйста, изучите этот вопрос. Комментарии не берут длинный ответ, поэтому я отправляю в качестве ответа здесь.