android添加c语言的可执行程序

发布时间 2023-12-22 15:40:47作者: simple雨

在android源码的external目录下添加test目录。在test目录下新建test.c文件和Android.mk文件。

test.c文件例如:

#include <stdio.h>
int main()
{
    printf("hello world\n");
    return 0;        
}

Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := my_test
LOCAL_CFLAGS := -Werror
LOCAL_SRC_FILES += test.c
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)

这样就完成了代码的编写,下一步在android根目录下使用mmm命令进行编译:

mmm ./external/test

这样编译出来的文件可以在开发板的vendor/bin目录下找到。

下面是Android.mk的部分介绍:

LOCAL_PATH := $(call my-dir)

首先LOCAL_PATH变量用于查找源文件,上面语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径

Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始。以include $(BUILD_XXX)结束。

LOCAL_MODULE_PATH: 最后的目标安装路径,TARGET_OUT_VENDOR_EXECUTABLES是安装在vendor/bin下面。

LOCAL_MODULE_TAGS :=user eng tests optional

user: 指该模块只在user版本下才编译

eng: 指该模块只在eng版本下才编译

tests: 指该模块只在tests版本下才编译

optional:指该模块在所有版本下都编译

include $(BUILD_STATIC_LIBRARY)表示编译成静态库

include $(BUILD_SHARED_LIBRARY)表示编译成动态库。

include $(BUILD_EXECUTABLE)表示编译成可执行程序