Test クラスを正しく実装した first.cpp ファイルがあると仮定すると、ここには複数のオプションがあります。あなたの Android.mk を見ることができないので、すべてのオプションを調べます。
First.cpp を静的ライブラリまたは共有ライブラリとしてビルドし、このライブラリをモジュールに追加して、Second.cpp をコンパイルします。Android.mk は次のようになります。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := firstlib
LOCAL_C_INCLUDES := path/to/first.h
LOCAL_SRC_FILES := first.cpp
include $(BUILD_STATIC_LIBRARY)
First を静的ライブラリではなく共有ライブラリにしたい場合は、include $(BUILD_STATIC_LIBRARY) 行を次のように変更します。
include $(BUILD_SHARED_LIBRARY)
これで、2 番目のライブラリは次のようにコンパイルされます。
include $(CLEAR_VARS)
LOCAL_MODULE := second
LOCAL_C_INCLUDES := path/to/first.h
LOCAL_C_INCLUDES += path/to/second.h
LOCAL_SRC_FILES := second.cpp
LOCAL_STATIC_LIBRARIES := firstlib
include $(BUILD_SHARED_LIBRARY)
firstlib が共有ライブラリとしてビルドされている場合は、LOCAL_STATIC_LIBRARIES += firstlib 行を次のように変更してリンクできます。
LOCAL_SHARED_LIBRARIES += firstlib
2 番目の解決策として、first.cpp を 2 番目のライブラリの一部としてビルドできます。この方法では、最初のライブラリへのリンクについて心配する必要はありません。これは、デザインの選択に似ており、ライブラリをどのように形成したいかです。
include $(CLEAR_VARS
LOCAL_MODULE := libtwolib-second
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-second
LOCAL_C_INCLUDES := path/to/first.h
LOCAL_C_INCLUDES += path/to/second.h
LOCAL_SRC_FILES := first.cpp
LOCAL_SRC_FILES += second.cpp
include $(BUILD_SHARED_LIBRARY)
最後に、NDK ディレクトリの samples/twolibs の下に、最初のアプローチのサンプルがあります。