我们正在开发一个项目,我们需要从静态库创建一个共享库。我们面临的问题是静态库包含循环依赖。以下是我的 makefile 示例:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Mylib1
LOCAL_SRC_FILES := lib/libMylib1.a
include $(PREBUILT_STATIC_LIBRARY)
....
....
....
LOCAL_MODULE := DisplayDriver
LOCAL_SRC_FILES := \
file1.c \
file2.c \
file3.c
LOCAL_STATIC_LIBRARIES := -Wl,--start-group \
Mylib1 \
Mylib2 \
Mylib3 \
Mylib4 \
-Wl,--end-group
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/examples \
LOCAL_CFLAGS := -x c -DHAVE_STDINT -DHAVE_SETENV -DNDEBUG -c
LOCAL_LDLIBS += -llog
APP_ABI := armeabi-v7a
include $(BUILD_SHARED_LIBRARY)
当我给出 ndk-build V=1 时,我可以在输出中清楚地看到 -Wl,--start-group 和 -Wl,--end-group 在要创建共享库时从编译中删除。那么是否还有其他明显的标志而我错过了相同的标志?
我在 Windows 7 64 位上使用 NDK R9。