LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false
LOCAL_SRC_FILES := maxab.c
LOCAL_MODULE := libmaxab
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := test.c
LOCAL_CFLAGS = -lmaxab
LOCAL_LDFLAGS := -Lout/apps/test123/armeabi/objs/maxab
LOCAL_SHARED_LIBRARY := libmaxab
LOCAL_LDLIBS := -Lout/apps/test123/armeabi/libmaxab.so
LOCAL_MODULE := test
include $(BUILD_EXECUTABLE)前面的测试库libmaxab正常的生成了,后面的test需要用到前面的这个库中的maxab函数,但在编译完成链接的时候提示 make APP=test123
Android NDK: Building for application 'test123'
Compile thumb : maxab <= maxab.c
SharedLibrary : libmaxab.so
Install : libmaxab.so => apps/test123/project/libs/armeabi/libmaxab.so
Compile thumb : test <= test.c
Executable : test
./out/apps/test123/armeabi/objs/test/test.o: In function `main':
/home/reaper/android-ndk-r5b/apps/test123/project/jni/test.c:6: undefined reference to `maxab'
collect2: ld returned 1 exit status
make: *** [out/apps/test123/armeabi/test] Error 1
这个问题让我郁闷了几天了,在网上看了很多,但都未能解决。希望知道的朋友帮下忙~~~~
include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false
LOCAL_SRC_FILES := maxab.c
LOCAL_MODULE := libmaxab
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := test.c
LOCAL_CFLAGS = -lmaxab
LOCAL_LDFLAGS := -Lout/apps/test123/armeabi/objs/maxab
LOCAL_SHARED_LIBRARY := libmaxab
LOCAL_LDLIBS := -Lout/apps/test123/armeabi/libmaxab.so
LOCAL_MODULE := test
include $(BUILD_EXECUTABLE)前面的测试库libmaxab正常的生成了,后面的test需要用到前面的这个库中的maxab函数,但在编译完成链接的时候提示 make APP=test123
Android NDK: Building for application 'test123'
Compile thumb : maxab <= maxab.c
SharedLibrary : libmaxab.so
Install : libmaxab.so => apps/test123/project/libs/armeabi/libmaxab.so
Compile thumb : test <= test.c
Executable : test
./out/apps/test123/armeabi/objs/test/test.o: In function `main':
/home/reaper/android-ndk-r5b/apps/test123/project/jni/test.c:6: undefined reference to `maxab'
collect2: ld returned 1 exit status
make: *** [out/apps/test123/armeabi/test] Error 1
这个问题让我郁闷了几天了,在网上看了很多,但都未能解决。希望知道的朋友帮下忙~~~~
也就是我想测试一下自己的程序使用自己的库,但是用NDK编译好了库,当是编译使用了这个库的程序的时候,老是提示链接不上。
--------------------------------int maxab(int x, int y)
2 {
3 return (x)>(y) ? (x):(y);
4 }
---------------------------------
test.c
---------------------------------
#include<stdio.h>
2
3 int main(int argc, char **argv)
4 {
5 int a = 5, b = 3, c = 0;
6 c = maxab(a, b);
7 printf("c = %d\n", c);
8 return 0;
9 }
------------------------------------
libmaxab.so这个动态链接库已经生成了呀,test这个也生成了.o文件就是在最后的link的时候不行了。
你写个.h文件然后include啊, 不然显然函数未定义的...
C的基础没学好...