Affdex'opencv-webcam-demo'在Ubuntu 16.04中崩溃

问题描述 投票:0回答:2

我制作了一个基于affdex git页面上的演示程序的程序,找到了here。这是一个名为'opencv-webcam-demo'的演示。我当时正在运行Ubuntu 14.04并且运行正常。然后我升级到Ubuntu 16.04,现在演示(即使没有我的更改)也无法正常运行。我尝试安装最新版本的opencv和boost并确认它们已正确安装但我仍然遇到同样的问题。

这是我在Ubuntu 16.04中运行程序时的输出:

ethan@ethan-HP-Pavilion-dv6-Notebook-PC:~/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必须指定数据文件夹的路径,at在哪一点上它会抛出一个Affdex异常,说数据路径必须是非空的。但是它不应该为null,因为我在开始时设置它。

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

仍然,删除提升并不理想,因为它已经为我编码。但如果我必须删除提升,那么我也必须解决这个问题。

库及其版本/操作系统版本:

  • 提升1.59.0
  • OpenCV 3.1.0
  • Affdex 3.1-396
  • Ubuntu 16.04

这些库是否与Ubuntu 16.04兼容?

谢谢你的帮助。非常感谢。

c++ opencv boost ubuntu-16.04 affdex-sdk
2个回答
1
投票

我认为问题在于您使用不兼容的libstdc ++版本编译混合库。您使用的编译器版本是什么?

当前版本的linux SDK是使用GCC 4.8编译的


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]

请仔细研究这个问题。评论没有得到长时间的回答,所以我在这里发布答案。

© www.soinside.com 2019 - 2024. All rights reserved.