当前位置: 技术问答>linux和unix
windows下NDK开发调用动态库里的函数报错没有定义
来源: 互联网 发布时间:2017-03-09
本文导语: 是这样的,我用NDK编译C代码想在ANDROID手机上运行。但是在调用一些动态库的时候出现了一些问题,让我很头痛…… 一个多星期了,也找不到是什么原因。有个简单的例子。 main.cc 文件: //#include //#include //#include...
是这样的,我用NDK编译C代码想在ANDROID手机上运行。但是在调用一些动态库的时候出现了一些问题,让我很头痛…… 一个多星期了,也找不到是什么原因。有个简单的例子。
main.cc 文件:
//#include
//#include
//#include
#include
#include
#include "add.h"
int main(int argc, char* argv[])
{
//System.loadLibrary("add");
int a=3;
int b=5;
printf("a+b = %d n",add(a,b));
printf("Hello Android! n");
return 0;
}
add.h文件:
int add(int a,int b);
add.c 文件:
#include
int add(int a,int b)
{
return a+b;
}
Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := add
LOCAL_SRC_FILES := add.c
include $(BUILD_SHARED_LIBRARY)
#LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := cc
LOCAL_MODULE := th_test
LOCAL_SRC_FILES := main.cc
#LOCAL_LDLIBS := -L./ -lSecuTFMcApi
#LOCAL_LDLIBS := -llog -ladd
LOCAL_SHARED_LIBRARIES := -L./ -ladd
include $(BUILD_EXECUTABLE)
是想把add.c文件编译成一个.so(动态库文件)库里有add()函数,可以提供给main.cc文件所调用。可是在编译的时候报错:
$ $NDK/ndk-build
Compile thumb : add /android-ndk-r4-crystax/samples/th_test/libs/armeabi
Compile++ thumb: th_test
main.cc 文件:
//#include
//#include
//#include
#include
#include
#include "add.h"
int main(int argc, char* argv[])
{
//System.loadLibrary("add");
int a=3;
int b=5;
printf("a+b = %d n",add(a,b));
printf("Hello Android! n");
return 0;
}
add.h文件:
int add(int a,int b);
add.c 文件:
#include
int add(int a,int b)
{
return a+b;
}
Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := add
LOCAL_SRC_FILES := add.c
include $(BUILD_SHARED_LIBRARY)
#LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := cc
LOCAL_MODULE := th_test
LOCAL_SRC_FILES := main.cc
#LOCAL_LDLIBS := -L./ -lSecuTFMcApi
#LOCAL_LDLIBS := -llog -ladd
LOCAL_SHARED_LIBRARIES := -L./ -ladd
include $(BUILD_EXECUTABLE)
是想把add.c文件编译成一个.so(动态库文件)库里有add()函数,可以提供给main.cc文件所调用。可是在编译的时候报错:
$ $NDK/ndk-build
Compile thumb : add /android-ndk-r4-crystax/samples/th_test/libs/armeabi
Compile++ thumb: th_test