簡単な質問(Android NDK r6とcygwinを使用していますが、これはmakefileとgccに関する質問です)ディレクトリーmylib_v_1 /の下のライブラリーをjni /ディレクトリーの下に置いたとします。Mylib次のように構成されています:
mylib_v_1
mylib
include
Includeディレクトリの下には、myinc1.hppとmyinc2.hppの2つのファイルがあります。 myinc1.hppには次のような行があります。
#include <mylib/myinc2.hpp>
私の.cppファイルのjni /ディレクトリの下に、次の行があります。
#include <mylib/myinc1.hpp>
追加のインクルードディレクトリとして、gccが使用することをgccに知らせるために、Android.mk(または他に設定する必要があるファイル)をセットアップします。#includeをブラケットで使用するために、jni/mylib_v_1 /を使用します(2つではなく)。ファイル、私の実際のケースでは、ブラケット表記で他の多くの.hppを含む多くの.hppがあります)。
これどうやってするの?
どうも。
Ps。 .cppファイルで、次のようにインクルードを変更した場合:
#include "mylib/myinc1.hpp"
gccはmyinc1.hppを見つけますが、処理中に2番目のインクルードを見つけます。
#include <mylib/myinc2.hpp>
そして、ファイルmyinc2.hppが見つからないと言って、そこで停止します。
オプション1:
選択したモジュール内のAndroid.mkに次のいずれかの行を追加します。
LOCAL_C_INCLUDES := /path/to/your/includes # ignore previous includes
# OR
LOCAL_C_INCLUDES += /path/to/your/includes # preserve previous includes
必要に応じて、「/ path/to/your/includes」を指す環境変数を作成し、次のように含めることができます。
LOCAL_C_INCLUDES := $(MYLIB_INCLUDES_PATH) # ignore previous includes
# OR
LOCAL_C_INCLUDES += $(MYLIB_INCLUDES_PATH) # preserve previous includes
オプション2:
すべてのヘッダーファイルを含む完全なフォルダー(mylib)をプロジェクトの「jni」フォルダーにコピーします。
選択したモジュール内のAndroid.mkに次の行を追加します。
LOCAL_C_INCLUDES := $(LOCAL_PATH)/mylib
または
LOCAL_C_INCLUDES += $(LOCAL_PATH)/mylib
以前のインクルードがあるかどうかによって異なります。
オプション3:
Eclipse用のCDTプラグインをインストールし、プロジェクトのインクルードパスへの「mylib」ディレクトリへの絶対パスを追加します。これは、必要なすべての手順を示す優れたチュートリアルです。
http://mhandroid.wordpress.com/2011/01/23/using-Eclipse-for-Android-cc-development/
次を使用して、Android.mkにCインクルードパスを追加できます。
common_CFLAGS := -Ijni/mylib/include
追加のパスには、別の-Iオプションが必要です。