android函数未定义,android ndk对方法的未定义引用

嗨,很抱歉,我正在尝试编译一些静态类,即jsmn.c,json.c和buf.c,它们是我从https://github.com/alisdair/jsmn-example/downloads下载的jsmn json库的一部分.

我正在编译两个STATIC_LIBRARIES lib1和json_librrary.lib1具有依赖于json_library的本机代码,然后将两个库制作成一个共享库,其中包含

?gnustl_static和lib1

我的文件夹结构如下

jni / lib1 / ANdroid.mk

include $(CLEAR_VARS)

LOCAL_MODULE := json_library

LOCAL_SRC_FILES := /3rdParty/jsmn/json_library.a

LOCAL_SRC_FILES := /3rdParty/jsmn/jsmn.c /3rdParty/jsmn/buf.c /3rdParty/jsmn/log.c /3rdParty/jsmn/json.c

LOCAL_C_INCLUDES := /3rdParty/jsmn/jsmn.h /3rdParty/jsmn/buf.h /3rdParty/jsmn/log.h /3rdParty/jsmn/json.h

# Optional compiler flags.

LOCAL_LDLIBS = -lz -lm

LOCAL_CFLAGS = -Wall -pedantic -std=c99 -g

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)

# Module Name

LOCAL_MODULE := lib1

LOCAL_STATIC_LIBRARIES := json_library

........

.......

......

include $(BUILD_STATIC_LIBRARY)

jni / Android.mk

# Here we give our module name

LOCAL_MODULE := lib2

# list the static modules included here!!!

LOCAL_STATIC_LIBRARIES := gnustl_static lib1

....

include $(BUILD_SHARED_LIBRARY)

jni / Application.mk

APP_MODULES := lib2

# Optimization for release

APP_OPTM := release

#Targets

APP_ABI := armeabi-v7a armeabi

所以在lib1内部,我有一个类,它从名为json_tokenise的json库中调用一个方法.

#include

#include

#include

#include

#include

#include

jsmntok_t *tokens=json_tokenise((char *)data);

typedef enum {

START,

WRAPPER,

MESSAGE,

ROUTE,

OBJECT,

ARRAY,

SKIP,

STOP

}parse_state;

我收到以下错误

undefined reference to `json_tokenise(char*)'

collect2: ld returned 1 exit status

make: *** [obj/local/armeabi-v7a/lib2.so] Error 1

**** Build Finished ****

当我查看[obj / local / armeabi-v7a /

正在为armabi-v7生成libjson_library.a liblib1.a libgnustl_static.a,并且由于错误而无法生成lib2.

请帮助或指导我哪里出了问题我已经花了两天时间,但我还是NDK的新手.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值