3
我试图使用Android-OpenSSLibraries进行AES解密的简单测试程序。编译器/链接器向我显示一个错误。编译:Android NDK编译器openssl发生错误
error: undefined reference to 'AES_set_encrypt_key'
error: undefined reference to 'AES_encrypt'
error: undefined reference to 'AES_set_decrypt_key'
这是我的Android.mk文件,
LOCAL_PATH := $(call my-dir)
$(info $(LOCAL_PATH))
include $(CLEAR_VARS)
LOCAL_MODULE := demo
LOCAL_CFLAGS := -I/some/include/path
LOCAL_LDLIBS := \
-llog \
-lz \
-lm \
LOCAL_SRC_FILES := \
aes_api.c \
io_module.cpp \
jni_native.cpp \
JniConstants.cpp \
JNIHelp.cpp \
libcrypto.so \
PosixFile.cpp \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/include/openssl
$(info $(LOCAL_C_INCLUDES))
LOCAL_SHARED_LIBRARIES := \
$(LOCAL_PATH)/libcrypto.so
include $(BUILD_SHARED_LIBRARY)
是的,你是right.But我照你说的,编译器显示我的另一个错误此链接:LOCAL_SRC_FILES应指向一个文件结尾“.a”以下文件不受支持:/libcrypto.so – user4073982 2014-09-24 09:47:58
@ user4073982这很奇怪,我使用它,而且'PREBUILT_SHARED_LIBRARY'的文档明确地说:“与'BUILD_SHARED_LIBRARY'和'BUILD_STATIC_LIBRARY'不同,'LOCAL_SRC_FILES '必须是预建的共享库的单一路径(例如, 'foo/libfoo.so'),而不是源文件。“ – JBL 2014-09-24 09:52:12
是的,LOCAL_SRC_FILES是共享库的路径,在mk文件中是LOCAL_SRC_FILES:= $(LOCA_PATH)/libcrypto.so,但我不知道在哪里 – user4073982 2014-09-24 09:59:56