我刚刚为 Android 编译了 OpenSSL。我有 libcrypto.so 和 libssl.so 共享库。我创建了一个名为 TrialApp 的示例 Android 应用程序。这个想法是使用一些可以调用 libssl 和 libcrypto 共享库的本机函数。因此,在我的 jni 目录下,我有一个 TrialApp.cpp,其中包含一个简单的 SHA1 示例。这是我在 Eclipse 上的 NDK 应用程序目录的树结构:
TrialApp
|
|-->Activity.java
|
|-->TrialApp.java(which includes System.LoadLibrary calls)
|
|-->jni
|-->TrialApp.cpp
|
|-->Android.mk
|
|-->includes
| |
| |-->openssl (dir containing *.h files)
|
|-->precompiled
|-->libssl.so
|-->libcrypto.so
这是 Android.mk 文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TrialApp
LOCAL_SRC_FILES := TrialApp.cpp
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/includes/openssl
LOCAL_LDLIBS := -llog
LOCAL_LDLIBS += $(LOCAL_PATH)/precompiled/libssl.so
LOCAL_LDLIBS += $(LOCAL_PATH)/precompiled/libcrypto.so
LOCAL_STATIC_LIBRARIES := sslx cryptox
include $(BUILD_SHARED_LIBRARY)
但是编译器找不到 TrialApp,.cpp 中的 openssl 头文件。
我得到的错误:致命错误:openssl/evp.h:没有这样的文件或目录
有人可以告诉我如何解决吗?谢谢。