Android用のOpenSSLをコンパイルしました。libcrypto.so と libssl.so 共有ライブラリがあります。TrialApp というサンプルの Android アプリケーションを作成しました。アイデアは、libssl および libcrypto 共有ライブラリを呼び出すいくつかのネイティブ関数を使用することです。したがって、私の jni ディレクトリの下には、単純な SHA1 の例を含む TrialApp.cpp があります。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: そのようなファイルまたはディレクトリはありません
誰かがそれを解決する方法を教えてもらえますか? ありがとう。