使用MinGW和NDK编译安卓C语言程序

本文最后更新于:2022年12月23日 晚上

一、搭建环境

1)配置MinGW

Windows 系统需要安装 MinGW,Linux 系统默认就有 gcc/g++ 编译套件无需安装。

MinGW下载:https://osdn.net/projects/mingw/

下载 mingw-get-setup.exe 即可,这是一个用于下载安装MinGW的程序(MinGW Installation Manager),运行后在主界面勾选 mingw32-base-bin 和 mingw32-gcc-g++-bin,然后点击左上角 Installation -> Apply Changes,程序这才开始下载配置相关环境。

Snipaste_2022-12-23_17-24-13.png

安装完毕后,需要配置环境变量,将 MinGW 安装路径 D:\MinGW\bin 添加到系统环境变量 Path 中。

以上就配置完毕了,可以打开终端执行命令 gcc --version 确认是否配置正确。

2)配置NDK

NDK下载:https://developer.android.com/ndk/downloads/index.html

NDK更简单一些,通过以上链接下载对应平台的包,例如 android-ndk-r25b-windows.zip,下载后解压,自己找个合适的地方存放就行,例如我将其放在 D:\android-ndk-r25b,同样将该路径加入到系统 Path 环境变量中即可。

可以执行命令 ndk-build --version 确认是否配置正确。

二、编译安卓C语言程序

随便写个C程序 main.c:

#include <stdio.h>

int main()
{
    printf("Hello world.\n");
    return 0;
}

添加 Android.mk:

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=main
LOCAL_SRC_FILES:=main.c
include $(BUILD_EXECUTABLE)

TARGET_ARCH := arm64
TARGET_ARCH_ABI := arm64-v8a

编译命令:ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

编译会产生两个文件夹 libs 和 obj,两个文件夹下都有编译生成的可执行程序,网上查的资料说是 obj 文件夹下的是包含一些调试相关东西,体积通常会相对大一些。

编译产物 libs/arm64-v8a/main 可以直接放到安卓手机中运行。

adb push libs/arm64-v8a/main /data/
adb shell "chmod +x /data/main"
adb shell "./data/main"

使用MinGW和NDK编译安卓C语言程序
https://mxy493.xyz/2022122328431/
作者
mxy
发布于
2022年12月23日
许可协议