2

現在、openssl のビルドの問題に直面しています。

私は最初に ndk-build the Guardian プロジェクトでライブラリを構築しlibssl.soて共有しました。libcrypto.so

2 番目のステップとして、このトピックで説明されているように次の手順を実行して、ライブラリを Android プロジェクトに統合しました。

1)jniフォルダーを作成する

2) この新しいフォルダーに、includes フォルダーを作成し、ヘッダー ファイルを含む openssl フォルダー (openssl パッケージから) をコピーして貼り付けました。

3) libssl.so および libcrypto.so ファイルをコピーしたプリコンパイル済みフォルダーを作成します。

4) Android.mk ファイルを作成します。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

c_includes := $(LOCAL_PATH)
cf_includes := include/openssl

cf_includes := $(addprefix -Ijni/,$(cf_includes))

export_c_includes := $(c_includes)

LOCAL_MODULE := security
LOCAL_SRC_FILES := security.c
LOCAL_CFLAGS += $(cf_includes)
LOCAL_EXPORT_C_INCLUDES := $(export_c_includes)
LOCAL_LDLIBS := -llog
LOCAL_LDLIBS += $(LOCAL_PATH)/precompiled/libssl.so
LOCAL_LDLIBS += $(LOCAL_PATH)/precompiled/libcrypto.so

include $(BUILD_SHARED_LIBRARY)

5) 次に、openssl を初期化する関数を含む security.c というソース ファイルを作成しました。

/* OpenSSL headers */

#include "openssl/bio.h"
#include "openssl/ssl.h"
#include "openssl/err.h"

/* Initializing OpenSSL */

void init_openssl(void){
    SSL_load_error_strings();
    ERR_load_BIO_strings();
    OpenSSL_add_all_algorithms();
}

5) ndk-build を使用して全体をビルドし、libsecurity.so ファイルを取得します。

しかし、このステップでは、コンパイラがヘッダー ファイルを見つけられないようで、次のエラーが発生します。

fatal error: openssl/bio.h: No such file or directory

mk ファイルで何かを見逃していませんか?

4

1 に答える 1