arm32 升级到arm64 NDK 编译so 文件遇到的问题

最近项目要丛arm32 升级到arm64,项目中两个so 需要重新编译64位的。

解决完相关语法问题后,成功编译出64 位的so。可是当把so放在工程中后,发生了crash log如下


然后使用ndk 的addr2line 定位到具体出问题的类和具体位置。(记得要使用有符号的so 否则都是??)
然后定位到出问题的代码是一个跟结构体覆值的代码。


rates->data_num = measurenum 这行代码出的错。但是这行代码只有一个简单的赋值的操作。猜测rates 是空。那肯定是rates = av_mallocz...这一行返回的是空。但是av_mallocz 是ffmpeg 中的方法,为什么会是空呢。我猜测是没有头文件,于是把mem.h引入进来。
重新build so放入项目中。然后发现正常了。此处有个疑问为什么编译32位的so是正常的,编译64位的so就需要引入对应的头文件。有知道的吗?
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容