2016-10-12 35 views
1

ソースコードhttps://github.com/iiordanov/remote-desktop-clients/tree/master/eclipse_projects/Opaqueをビルドしようとしています。 gstreamerのライブラリーを構築しながらGStreamerリンクエラー

今すぐにエラーがあります:

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:externalNativeBuildDebug'. 
> Build command failed. 
Error while executing 'D:\Entwicklung\Android\ndk-bundle\ndk-build.cmd' with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\Entwicklung\Android-Projekte\app\Spice-Client\app\jni\src\Android.mk APP_ABI=mips64 NDK_ALL_ABIS=mips64 NDEBUG=1 APP_PLATFORM=android-21 NDK_OUT=D:/Entwicklung/Android-Projekte/app/Spice-Client/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=D:\Entwicklung\Android-Projekte\app\Spice-Client\app\build\intermediates\ndkBuild\debug\lib gst-build-mips64/libgstreamer_android.so} 
Android NDK: WARNING:D:\Entwicklung\Android-Projekte\app\Spice-Client\app\jni\src\Android.mk:spice: non-system libraries in linker flags: D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libssl.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libcrypto.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libcelt051.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libgovirt.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/librest-0.7.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libjpeg.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libusb.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libusbredirhost.a D:/Entwicklung/Android-Projekte/app/Spice-Client/app/jni/src/../libs/deps/lib/libusbredirparser.a  
Android NDK:  This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES  
Android NDK:  or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the  
Android NDK:  current module  
GStreamer  : [GEN] => gst-build-mips64/gstreamer_android.c 
GStreamer  : [COMPILE] => gst-build-mips64/gstreamer_android.c 
GStreamer  : [LINK] => gst-build-mips64/libgstreamer_android.so 
clang.exe: error: invalid linker name in argument '-fuse-ld=gold' 
make: *** [buildsharedlibrary_mips64] Error 1 

私はまた、「gold.exe」にリンカの名前を変更しようとしたが、それは、私は現在、ARMを使用しています何 は変更されません。トンだから、誰もが方法を知っているん1.9.2 https://gstreamer.freedesktop.org/data/pkg/android/1.9.2/

Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LIB_PATH := $(LOCAL_PATH)/../../libs/armeabi 

SPICE_CLIENT_ANDROID_DEPS := $(LOCAL_PATH)/../libs/deps 

GSTREAMER_ROOT := $(LOCAL_PATH)/../../libs/gstreamer 
CROSS_DIR := $(LOCAL_PATH)/../../libs/gstreamer 
spice_objs := \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libssl.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libcrypto.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libcelt051.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libgovirt.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/librest-0.7.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libjpeg.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libusb.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libusbredirhost.a \ 
    $(SPICE_CLIENT_ANDROID_DEPS)/lib/libusbredirparser.a 


LOCAL_MODULE := spice 

LOCAL_SRC_FILES := gtk/spice-uri.c gtk/channel-record.c gtk/channel-playback.c gtk/channel-cursor.c \ 
        gtk/channel-webdav.c gtk/spice-cmdline.c gtk/coroutine_gthread.c gtk/spice-util.c \ 
        gtk/spice-session.c gtk/spice-channel.c gtk/spice-marshal.c gtk/spice-glib-enums.c \ 
        gtk/gio-coroutine.c gtk/channel-base.c gtk/channel-main.c gtk/spice-proxy.c gtk/bio-gsocket.c \ 
        gtk/glib-compat.c gtk/channel-display.c gtk/channel-display-mjpeg.c gtk/channel-inputs.c \ 
        gtk/decode-glz.c gtk/decode-jpeg.c gtk/decode-zlib.c gtk/wocky-http-proxy.c gtk/channel-port.c \ 
        gtk/spice-client.c gtk/spice-audio.c gtk/spice-gstaudio.c gtk/vmcstream.c \ 
        gtk/channel-usbredir.c gtk/usb-device-manager.c gtk/usbutil.c gtk/bio-gio.c \ 
        spice-common/common/generated_client_demarshallers.c spice-common/common/generated_client_demarshallers1.c \ 
        spice-common/common/generated_client_marshallers.c spice-common/common/generated_client_marshallers1.c \ 
        spice-common/common/mem.c spice-common/common/marshaller.c spice-common/common/canvas_utils.c \ 
        spice-common/common/backtrace.c spice-common/common/sw_canvas.c spice-common/common/pixman_utils.c \ 
        spice-common/common/lines.c spice-common/common/rop3.c spice-common/common/quic.c spice-common/common/lz.c \ 
        spice-common/common/region.c spice-common/common/ssl_verify.c spice-common/common/log.c \ 
        spice-common/common/snd_codec.c \ 
        virt-viewer/virt-viewer-file.c virt-viewer/virt-viewer-util.c \ 
        android/android-service.c android/android-spicy.c android/android-spice-widget.c \ 
        android/android-io.c 

LOCAL_LDLIBS += $(spice_objs) \ 
        -ljnigraphics -llog -ldl -lstdc++ -lz \ 
        -malign-double -malign-loops 

LOCAL_CPPFLAGS += -DG_LOG_DOMAIN=\"GSpice\" \ 
        -DSW_CANVAS_CACHE \ 
        -DHAVE_CONFIG_H -UHAVE_SYS_SHM_H -DSW_CANVAS_CACHE \ 
        -D_REENTRANT -DWITH_GSTAUDIO 

LOCAL_C_INCLUDES += \ 
        $(LOCAL_PATH)/gtk \ 
        $(LOCAL_PATH)/spice-common \ 
        $(LOCAL_PATH)/spice-common/common \ 
        $(LOCAL_PATH)/spice-common/spice-protocol \ 
        $(LOCAL_PATH)/virt-viewer \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include/govirt-1.0 \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include/rest-0.7 \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include/jpeg-turbo \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include/libusb \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include/usbredirparser \ 
        $(SPICE_CLIENT_ANDROID_DEPS)/include/usbredirhost \ 
        $(CROSS_DIR)/include \ 
        $(CROSS_DIR)/include/glib-2.0 \ 
        $(CROSS_DIR)/include/libxml2 \ 
        $(CROSS_DIR)/include/pixman-1 \ 
        $(CROSS_DIR)/include/spice-1 \ 
        $(CROSS_DIR)/lib/glib-2.0/include 

LOCAL_CFLAGS := $(LOCAL_CPPFLAGS) \ 
        -std=gnu99 -Wall -Wno-sign-compare -Wno-deprecated-declarations -Wl,--no-undefined \ 
        -fPIC -DPIC -O3 -funroll-loops -ffast-math 

LOCAL_EXPORT_CFLAGS += $(LOCAL_CFLAGS) 
LOCAL_EXPORT_LDLIBS += $(LOCAL_LDLIBS) 
LOCAL_ARM_MODE := arm 
LOCAL_SHARED_LIBRARIES := gstreamer_android 
include $(BUILD_SHARED_LIBRARY) 

include $(CLEAR_VARS) 


GSTREAMER_SDK_ROOT_ANDROID := $(LOCAL_PATH)/../../libs/gstreamer 
ifndef GSTREAMER_SDK_ROOT 
ifndef GSTREAMER_SDK_ROOT_ANDROID 
$(error GSTREAMER_SDK_ROOT_ANDROID is not defined!) 
endif 
GSTREAMER_SDK_ROOT  := $(GSTREAMER_SDK_ROOT_ANDROID) 
endif 
GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_SDK_ROOT)/share/gst-android/ndk-build/ 
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk 
GSTREAMER_PLUGINS   := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_SYS) 
G_IO_MODULES    := gnutls 
GSTREAMER_EXTRA_DEPS  := pixman-1 gstreamer-app-1.0 libsoup-2.4 libxml-2.0 gthread-2.0 gobject-2.0 glib-2.0 gio-unix-2.0 

TARGET_LDFLAGS := -z muldefs 

include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 

にGStreamerのバージョンのビルドoこのエラーを解決しますか? gstreamerの無条件-fuse-ld=goldを渡すよう

答えて

1

はルックス:

$ grep -rI fuse-ld . 
... 
./share/gst-android/ndk-build/gstreamer-1.0.mk:GSTREAMER_LD     := -fuse-ld=gold -Wl,-soname,lib$(GSTREAMER_ANDROID_MODULE_NAME).so 

NDKは、MIPS/MIPS64ためld.goldを出荷していません。

# mips/mips64 don't have ld.gold. 
ifeq (,$(filter mips mips64,$(TARGET_ARCH))) 
    LOCAL_LDFLAGS += -fuse-ld=gold 
endif 

はまた、ちょうど-fuse-ld=goldに合格しない:あなたは、ゲートにそのようなTARGET_ARCHに対する-fuse-ld=gold使用を必要とします。 NDKは、他のアーキテクチャ(デフォルトではbfdがデフォルトのままであるaarch64は別として)のデフォルトになります。

0

プリコンパイルされたgstreamerバイナリにはまだmipsサポートは含まれていません。ビルドからmipsを除外する必要があります。