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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容