Android MK导入第三方静态库.a编译成执行文件,或者SO

  • 目录结构
image.png
  • 生成.a静态库

static.h

int add( int x, int y);

static.cpp

#include "include/static.h"
int add( int x, int y)
{
     return x + y;
}

  • Android mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := static_add
LOCAL_SRC_FILES := static.cpp
include $(BUILD_STATIC_LIBRARY)

  • 使用静调库
image.png

share.h

# include "static.h"
int test_add( int x, int y);

静态库的头文件 ,static.h

share.cpp


# include "include/share.h"
# include "include/static.h"
# include "log/log.h"

int test_add( int x, int y)
{
     // 调用static里面的方法
     return add(x, y);
}



int main() {
      test_add(5,6);
 ALOGE("test_addtest_addtest_addtest_addtest_addtest_add");
    return 0;

}

static_add.a 编译好的静态库

  • Android mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := static_add
LOCAL_SRC_FILES := libstatic_add.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := share_add
LOCAL_STATIC_LIBRARIES := static_add
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := share.cpp
include $(BUILD_EXECUTABLE)

最后编译,会在system/bin 下生成一个可执行的二进制文件share_add,拷贝到手机即可执行测试

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容