1

Android の ADT Eclipse ツール チェーンを使用して静的 NDK ライブラリを構築しようとしています。ただし、BUILD_STATIC_LIBRARY でビルドするたびに、出力が生成されません: メッセージが表示されます

make: Nothing to be done for `all'."

推奨事項はありますか?

LOCAL_PATH          := $(call my-dir)
STL_PATH            := "C:/Android/ndk/sources/cxx-stl/gnu-libstdc++/4.6/include"
PLATFORM_INCLUDE    := "C:/Android/ndk/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include"
APP_STL             := gnustl_static

include $(CLEAR_VARS)

LOCAL_MODULE        := libCore
LOCAL_CPPFLAGS      += -std=c++11 -fexceptions -D_OS_ANDROID
LOCAL_LDLIBS        := -lGLESv2 -lEGL -lstdc++

LOCAL_C_INCLUDES    += $(LOCAL_PATH)/Headers
...

LOCAL_SRC_FILES     += Source/Engine/Game.cpp
...

include $(BUILD_STATIC_LIBRARY)
4

1 に答える 1

2

Android NDK の two-libs サンプル プロジェクトの Android.mk ファイルの内容を次に示します。

LOCAL_PATH:= $(call my-dir)

# first lib, which will be built statically
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-first
LOCAL_SRC_FILES := first.c

include $(BUILD_STATIC_LIBRARY)

# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-second
LOCAL_SRC_FILES := second.c

LOCAL_STATIC_LIBRARIES := libtwolib-first

include $(BUILD_SHARED_LIBRARY)

例に示すように、スタティック ライブラリを別の共有ライブラリの一部として構築してみてください。

two-libs サンプル プロジェクトで ndk-build を実行したところ、.a ファイルと .so がobj\local\armeabiディレクトリに表示されました。

編集: デフォルトでは、ndk-build は共有ライブラリと実行可能ファイル、およびそれらが依存するモジュールのみをビルドします。ビルドを強制するには、次のように APP_MODULES で libCore を指定します。

APP_MODULES := libCore

またはコマンドラインで

ndk-build APP_MODULES=libCore
于 2013-04-07T09:44:55.867 に答える