我的Application.mk设置为构建arm以及x86共享库:
APP_ABI: - armeabi-v7a x86
我有预构建的openssl静态库:
libcrypto_v7a.a
libcrypto_x86.a
libssl_v7a.a
libssl_x86.a
这些文件已复制到jni / inc目录:
非常感谢您在设置Android.mk时的帮助,以便它选择适当的库链接:
LOCAL_LDLIBS := -llog -L$(LOCAL_PATH)/inc/ -lcrypto_v7a -lssl_v7a
或
LOCAL_LDLIBS := -llog -L$(LOCAL_PATH)/inc/ -lcrypto_x86 -lssl_x86
也许定义了一种$(ARCH)类型的变量,我可以利用这个变量:
LOCAL_LDLIBS := -llog -L$(LOCAL_PATH)/inc/ -lcrypto_$(ARCH) -lssl_$(ARCH)
答案 0 :(得分:3)
如何使用ifeq
和TARGET_ARCH
?
LOCAL_LDLIBS := -llog -L$(LOCAL_PATH)/inc/
ifeq ($(TARGET_ARCH),arm)
LOCAL_LDLIBS += -lcrypto_v7a -lssl_v7a
else
ifeq ($(TARGET_ARCH),x86)
LOCAL_LDLIBS += -lcrypto_x86 -lssl_x86
endif
endif
答案 1 :(得分:3)
另一种选择是:
MY_LDLIBS_arm := -lcrypto_v7a -lssl_v7a
MY_LDLIBS_x86 := -lcrypto_x86 -lssl_x86
MY_LDLIBS_mips := ...
LOCAL_LDLIBS += $(MY_LDLIBS_$(TARGET_ARCH))
更容易阅读和写作。