Hiba: SHARED_LIBRARIES hiányzó STATIC_LIBRARIES Android.mk

szavazat
0

Van egy android alkalmazás, amely szintén a C ++ kódot függőségeket.

Azt akarom, hogy ezt az alkalmazást rendszer alkalmazása összeállítása az AOSP.

Az én android.mk, azt kell először importálni egy statikus könyvtár (abc.a) és utána azt, hogy egy megosztott könyvtár (xyz.so).

Én szembe építeni tévedés error: xyz (SHARED_LIBRARIES android-arm64) hiányzik abc (STATIC_LIBRARIES android-arm64)

Android.mk:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := abc
LOCAL_SRC_FILES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/abc.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
#LOCAL_LDFLAGS := -llog -ldl
LOCAL_MODULE    := libxyz
LOCAL_SRC_FILES := \
                xyz.cpp \
                xyz1.cpp        
LOCAL_STATIC_LIBRARIES := abc
LOCAL_CFLAGS += -Wall -Werror -Wno-unused-parameter -Wno-switch
#LOCAL_SDK_VERSION := 19
#LOCAL_NDK_STL_VARIANT := c++_static # LLVM libc++
include $(BUILD_SHARED_LIBRARY)  

Cmakelists:

cmake_minimum_required(VERSION 3.4.1)
add_library( # Sets the name of the library.
             abc
             # Sets the library as a shared library.
             SHARED
             # Provides a relative path to your source file(s).
             src/main/cpp/abc.cpp
             src/main/cpp/abc.hxx
            ......................)

find_library( # Sets the name of the path variable.
              log-lib
              log pthread)

add_library( xyz
             STATIC
             IMPORTED )

 set_target_properties( # Specifies the target library.
                        xyz
                        # Specifies the parameter you want to define.
                        PROPERTIES IMPORTED_LOCATION
                        # Provides the path to the library you want to import.
                        ../../../../${ANDROID_ABI}/xyz.a )

target_link_libraries( # Specifies the target library.
                       abc
                       xyz ${log-lib} )

Csatolása hiba képernyőképet. írja kép leírása itt

A kérdést 10/10/2019 00:45
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

A platform build rendszer nem ugyanaz, mint az egyik alkalmazott a NDK. Nincs olyan szabály PREBUILT_STATIC_LIBRARYvagy PREBUILT_SHARED_LIBRARY, ezért ezek a szabályok nem végrehajtásáról. A platform használja BUILD_PREBUILT, és meg kell adnia a LOCAL_MODULE_CLASS. Lásd https://android.googlesource.com/platform/packages/apps/Dialer/+/refs/heads/master/Android.mk példát.

CEllenõrizze nem támogatja egyáltalán a platform.

Azt is valószínűleg nem szeretné használni Android.mk a platform. Ez build rendszer (amely független NDK-build) már a kiutat több éve. Azt akarja, hogy használni Szung által leírt https://source.android.com/setup/build .

Válaszolt 11/10/2019 01:27
a forrás felhasználó

szavazat
0

Fogadok, hogy a statikus könyvtár fájl libabc.a nem abc.a . Ha egy előre elkészített statikus könyvtár nem rendelkezik a lib előtagot, csak nevezd ha készíteni.

Válaszolt 10/10/2019 05:10
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more