linux下 Error in 'python3':free(): invalid pointer
linux下坑人的报错!折腾了好久。
现象:这次是一个底层库 C++,底层库之上一层SDK C++,之上再一层so库,用python调用SDK。然后python层依赖了opencv和SDK,调换opencv和SDK的依赖顺序,opencv在前就报错。且莫名其妙毫无头脑。
之前好像也遇到过类似的问题(opencv动静态库版本冲突等等会遇到),每次都是莫名其妙的解决了,这次简直了。
解决:
1.网上很多人说,添加malloc的一个库,试了不行,加了继续报错,再查新错误,说换顺序。还有就是真的是free了错误的指针报错的。我的情况看起来都不是。
2.依赖库也很多,编译选项也很多。一个一个试了好久,最终发现一个编译选项-static-libstdc++,去掉就好使了。
分析:最终啥原因还不知道,但是加上-static-libstdc++在程序最简单最干净的时候是可以的,只要加上一句include<iostream>就又会报上面那个错误。不知道还是啥冲突了。
目前先这样解决吧。