【发布时间】:2014-01-13 07:21:06
【问题描述】:
我正在开发一个使用 AES 加密来加密和解密文件的 Android 项目。但是Java中内置的Cipher真的很慢。在做了一些研究之后,我决定使用 NDK 为 OpenSSL 库中的 aes 构建一个包装器。于是我创建了一个Android项目:
Android项目结构:
src
res
jni
openssl-1.0.1e (openssl source code folder)
Android.mk
wrapper-folder
aes_wrapper.c
Android.mk
Application.mk
首先我的 aes_wrapper.c 有一个非常简单的功能并且 ndk-build 成功。但是当我尝试编写加密函数时,我在 aes_wrapper.c 中包含“../openssl-1.0.1e/crypto/aes/aes.h”,出现以下错误:
openssl/opensslconf.h no such file or directory
头文件opensslconf.h位于../openssl-1.0.1e/include/openssl
谁能告诉我如何解决这个问题?非常感谢,对我糟糕的英语感到抱歉。
编辑:这里是 Android.mk
-
在文件夹 openssl-1.0.1e/crypto/aes
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libaes LOCAL_SRC_FILES := aes_cbc.c aes_cfb.c aes_core.c aes_ctr.c aes_ebc.c aes_ige.c aes_misc.c aes_ofb.c aes_wrap.c aes_x86core.c include $(BUILD_STATIC_LIBRARY) -
在文件夹包装中
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := aes_wrapper LOCAL_SRC_FILES := aes_wrapper.c LOCAL_LDLIBS := -lz -ljnigraphics LOCAL_STATIC_LIBRARIES += libaes LOCAL_IS_SUPPORT_LOG := true ifeq ($(LOCAL_IS_SUPPORT_LOG),true) LOCAL_LDLIBS += -llog endif include $(BUILD_SHARED_LIBRARY)
【问题讨论】:
-
你的 Android.mk 中包含头目录吗?发布你的 Android.mk 真的很有帮助。
-
@user2359247 我添加了 2 个 Android.mk。请帮我。非常感谢。
标签: android android-ndk openssl aes