我制作了一个程序,它是基于这里页面上的演示程序制作的。这是一个名为“opencv-网络摄像头-演示”的演示。当时我运行的是Ubuntu14.04,它运行得很好。然后我升级到Ubuntu16.04,现在演示程序(即使没有更改)无法正常运行。我试着安装opencv和boost的最新版本,并确认它们安装正确,但我还是遇到了同样的问题。
以下是我在Ubuntu16.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异常,说明数据路径必须是非空的。但是,它不应该是空的,因为我在开始时设置了它。
affdex::path DATA_FOLDER = "<path to data folder>";
...
frameDetector->setClassifierPath(DATA_FOLDER);不过,删除助推并不理想,因为它已经为我编码。但是,如果我必须消除提振,那么我也必须解决这个问题。
库及其版本/ OS版本:
这些库与Ubuntu16.04兼容吗?
谢谢你的帮助。我们对此深表感谢。
发布于 2016-09-08 22:37:21
我认为问题在于,您将库与使用不兼容版本的libstdc++编译的库混合在一起。您使用的编译器版本是什么?
linux的当前版本是用GCC 4.8编译的。
发布于 2018-01-03 06:36:38
更新了:我通过将SDK版本更新为最新版本(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]请调查一下这个问题。评论没有得到长时间的答复,所以我在这里张贴作为答复。
https://stackoverflow.com/questions/39281435
复制相似问题