アプリケーションのJNIフォルダにC++ ファイルを書きました。NDKとCygwin 1.7でWindowsシステムを使用しています。Cygwin で利用できる CURL ライブラリを参照したい。Android で JNI アプリケーションを作成する際に、外部の .h(libraries/header) ファイルを参照するにはどうすればよいですか? Android と C++ を組み合わせたプロジェクトを作成しました。しかし、私はCURLヘッダーファイルを参照しています. プロジェクトをビルドすると、致命的なエラーが発生します: curl/curl.h: No such file or directory issue.
4 に答える
そのlibcurl.aファイルを取得したら、curlのheadersフォルダーをコピーして( Cygwinからusr / include / curlに移動)、このフォルダーをプロジェクトのJNIフォルダーに追加することを忘れないでください。これにより、コンパイル中にヘッダーが認識されます。 。
これは、 Android.mkでも参照することを意味します:
libcurlライブラリの場合
LOCAL_SRC_FILES := libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/curl
そしてあなたのC++ファイルのために
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/curl
LOCAL_WHOLE_STATIC_LIBRARIES := libcurl
次の手順を実行します:
AndroidプロジェクトからC/C ++プロジェクトへの変換:プロジェクト名を右クリックし、[Androidツール]に移動して[ネイティブサポートを追加]をクリックします
外部.hファイルへのパスの追加:プロジェクト名を右クリックし、[プロパティ]に移動し、[C / C ++ General]の下に移動し、[パスとシンボル]に移動し、[含む]タブに移動して、。が含まれるフォルダーを追加します。 hファイルはです。求められた場合は、すべての言語と構成に追加することを忘れないでください。
また、Windowsを使用しているため、ビルドコマンド(プロジェクトプロパティの[C / C ++ビルド]セクションにあります)を「bashC:\ Development \ android-ndk-r8\ndk-」に変更する必要があると思います。 build.cmd "
以下を に追加しますAndroid.mk
。
LOCAL_CFLAGS += -I$/PATH/TO/YOUR/curl.h
LOCAL_LDLIBS += -L$/PATH/TO/YOUR/libcurl.a.for.android -lcurl
cygwin にインストールしたlibcurl.a
は android では使用できません。android を対象としたバージョンが必要です。持っていない場合は、自分で作成してください。
素敵なチュートリアルですので是非ご利用ください。
プロジェクトを C / C++ ネイティブ プロジェクトに変換した後、この設定を変更することを忘れないでください。
コマンドをビルドするためのビルダー設定
bash C:\tools\android-ndk-r8b-windows\android-ndk-r8b\ndk-build
これは NDK の私のパスです。NDK パスに応じてこのパスを変更できます。