Windows+MinGW+ndk编译.c生成.so文件记录

最近接手同事的一份android代码,但是Jni部分的.c文件中包含#include <linux/videodev2.h>等linux环境下的.h文件。

我想吐槽,移植linux环境中的代码还是要完全移植为好,或者留下交接文档,为了编译so折腾了很久,我根本想到是这个原因导致的,最后是上司尝试此种方式编译才发现的,我之前一直以为是NDK版本或者本机环境缺少文件导致的。

使用android studio无法直接编译,需要在linux环境下才能进行编译生成so文件。由于本机不具备linux环境,需借助MinGW来编译。

MinGW环境配置可自行查询。

进入MinGW。点击MinGW\msys\1.0中的msys.bat。

这个类似window中的cmd模式。



确保jni文件在你的工程目录下(如CameraServer\jni)。

在MinGW环境中进入你的工程目录(如我这里是C:\CameraServer,方便调试随便放的)。

进入工程目录后,在此目录下运行ndk-build(前提是要配置好ndk啊)。




然后工程的lib目录下就会生成armeabi-v7a的so文件。



参考记录:

Android NDK学习(4)使用cygwin生成.so库文件

https://blog.csdn.net/hcb1230/article/details/19401029


使用NDK-r8与Cygwin编译生成so库

https://blog.csdn.net/QWZHJ/article/details/52088230


cygwin 生成.so

https://blog.csdn.net/hyjecjtu/article/details/9033447

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容