gpt4 book ai didi

android - ADT 工具链不为静态库生成输出

转载 作者:行者123 更新时间:2023-11-29 21:45:55 26 4
gpt4 key购买 nike

尝试使用 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)

最佳答案

这里是 Android NDK 的双库示例项目的 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)

您可以尝试将静态库构建为另一个共享库的一部分,如示例所示。

我刚刚对双库示例项目进行了 ndk 构建,我可以在 obj\local\armeabi 目录中看到 .a 文件和 .so。

编辑:默认情况下,ndk-build 只会构建共享库和可执行文件,以及它们所依赖的模块。要强制构建,请按如下所示在 APP_MODULES 中指定 libCore。

APP_MODULES := libCore

或者在命令行中

ndk-build APP_MODULES=libCore

关于android - ADT 工具链不为静态库生成输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com