linux+ndk编译so+指令,Windows命令ndk-build编译.so文件

1. 下载一个NDK包,然后设置ndk-build所在的目录到环境变量。

2. 在源代码目录新建一个jni目录(试了几次Android.mk如果不在jni目录时需要写完整路径)。

3. Application.mk

#APP_ABI := all

#APP_ABI := arm64-v8a armeabi-v7a armeabi x86 x86_64

APP_ABI := arm64-v8a armeabi-v7a

APP_PLATFORM := android-14

#APP_STL := stlport_shared

APP_STL := stlport_static

APP_MODULES := Common

4. Android.mk

LOCAL_PATH := $(call my-dir)

######################################################### sqlite3 #########################################################

include $(CLEAR_VARS)

LOCAL_MODULE := sqlite3

MY_INCLUDES := -I$(LOCAL_PATH)/../..

LOCAL_SRC_FILES := ../../Framework/Sqlite3/sqlite3.c

LOCAL_CFLAGS := -DPlatform_Linux $(MY_INCLUDES) -Wall -O3

LOCAL_EXPORT_C_INCLUDES :=

LOCAL_EXPORT_CFLAGS :=

LOCAL_EXPORT_LDLIBS := -llog

include $(BUILD_STATIC_LIBRARY)

######################################################### cJSON #########################################################

include $(CLEAR_VARS)

LOCAL_MODULE := cJSON

MY_INCLUDES := -I$(LOCAL_PATH)/../..

LOCAL_SRC_FILES := ../../Framework/Json/cJSON.c

LOCAL_CFLAGS := -DPlatform_Linux $(MY_INCLUDES) -ldl -Wall -O3

LOCAL_EXPORT_C_INCLUDES :=

LOCAL_EXPORT_CFLAGS :=

LOCAL_EXPORT_LDLIBS := -llog

include $(BUILD_STATIC_LIBRARY)

######################################################### Common #########################################################

include $(CLEAR_VARS)

LOCAL_MODULE := Common

MY_INCLUDES := -I$(LOCAL_PATH)/../.. \

-I$(LOCAL_PATH)/../../Framework/Interface/HAL \

-I$(LOCAL_PATH)/../Common_IAR_820

MY_SRC_FILES := $(wildcard $(LOCAL_PATH)/../Code/*.cpp) \

$(wildcard $(LOCAL_PATH)/../../Framework/express/*.cpp) \

$(wildcard $(LOCAL_PATH)/../../Framework/Util/*.cpp) \

$(wildcard $(LOCAL_PATH)/../../Framework/fs/*.cpp) \

$(LOCAL_PATH)/../../HAL/linkLayer/Frame.cpp

LOCAL_SRC_FILES := $(MY_SRC_FILES)

#LOCAL_SRC_FILES := ../Code/BinStream.cpp \

#../Code/ColumnData.cpp \

#../Code/Common.cpp \

#../Code/DataGetter.cpp \

#../Code/ItemNode.cpp \

#../Code/MenuTreeNode.cpp \

#../Code/PublicText.cpp \

#../Code/Resources.cpp \

#../Code/Section.cpp \

#../../Framework/express/FX_Math.cpp \

#../../Framework/express/FX_Express.cpp \

#../../Framework/Util/StringUtil.cpp \

#../../Framework/fs/FxFile.cpp

#$(LOCAL_PATH)/../../HAL/linkLayer/Frame.cpp

LOCAL_CFLAGS := -DPlatform_Linux $(MY_INCLUDES) -ldl -Wall -O3 -std=c++11

# 连接静态库

LOCAL_STATIC_LIBRARIES := sqlite3 cJSON

# 连接动态库

#LOCAL_SHARED_LIBRARIES :=

LOCAL_EXPORT_C_INCLUDES :=

LOCAL_EXPORT_CFLAGS :=

LOCAL_EXPORT_LDLIBS := -llog

#include $(BUILD_SHARED_LIBRARY)

include $(BUILD_STATIC_LIBRARY)

5. 使用批处理(为了方便)

@echo off

chcp 936

rem -jn : 表示使用多少个CPU内核编译

rem V=1: 输出编译参数

rem -B : 强制重新编译

rem NDK_LIBS_OUT=.so输出目录

rem NDK_OUT=.a输出目录

ndk-build -j4 -B V=1 NDK_DEBUG=1 NDK_LIBS_OUT=../../Libs/Debug/Android/libs NDK_OUT=../../Libs/Debug/Android/obj

pause

NDK_LIBS_OUT: 生成的动态库所在目录

NDK_OUT: 生成的.o文件所在的目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值