这个是twolib中的makefileLOCAL_PATH:= $(call my-dir)# first lib, which will be built statically # include $(CLEAR_VARS)LOCAL_MODULE := libtwolib-first LOCAL_SRC_FILES := first.cinclude $(BUILD_STATIC_LIBRARY) #上面这几句就是用first.c生成的第一个静态库.a文件,注意最后一句话BUILD_STATIC_LIBRARY# second lib, which will depend on and include the first one # include $(CLEAR_VARS)LOCAL_MODULE := libtwolib-second LOCAL_SRC_FILES := second.cLOCAL_STATIC_LIBRARIES := libtwolib-firstinclude $(BUILD_SHARED_LIBRARY) #这个就是第二个c文件,连接了第一步生成的静态库libtwolib-first.a,最后生成libtwolib-second.so
ndk下面有个例子叫twolib,和你要实现的功能是一摸一样的,你可以看看
#
include $(CLEAR_VARS)LOCAL_MODULE := libtwolib-first
LOCAL_SRC_FILES := first.cinclude $(BUILD_STATIC_LIBRARY)
#上面这几句就是用first.c生成的第一个静态库.a文件,注意最后一句话BUILD_STATIC_LIBRARY# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)LOCAL_MODULE := libtwolib-second
LOCAL_SRC_FILES := second.cLOCAL_STATIC_LIBRARIES := libtwolib-firstinclude $(BUILD_SHARED_LIBRARY)
#这个就是第二个c文件,连接了第一步生成的静态库libtwolib-first.a,最后生成libtwolib-second.so
我在laoli目录下的Android.mk文件中最后一句是:include $(BUILD_STATIC_LIBRARY)
second.c这里的Android.mk和我写的也差不多,唯一的区别可能就是LOCAL_STATIC_LIBRARIES后面静态库的名字前面是否有lib,这个有没有应该是一样的。如果有人能把我那个修改一下make过去,可能就知道原因在哪里了。
extern "C" {
#endif
#include "laoli.h"
#ifdef __cplusplus
}
#endif
cc默认的是c++的编译器,调用c的库 要加上上面的宏。
加了之后可以编译通过