2017-08-09 11 views
0

Application.mkNDKビルドエラー:

APP_STL := gnustl_static 
APP_ABI := all 

Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libz 
LOCAL_SRC_FILES := ../prebuild/libz.a 
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include/ 
include $(PREBUILT_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libssl 
LOCAL_SRC_FILES := ../prebuild/libssl.a 
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include 
include $(PREBUILT_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libcrypto 
LOCAL_SRC_FILES := ../prebuild/libcrypto.a 
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include 
include $(PREBUILT_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libjson-c 
LOCAL_SRC_FILES := ../prebuild/libjson-c.a 
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include 
include $(PREBUILT_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libcurl 
LOCAL_SRC_FILES := ../prebuild/include/libcurlall/$(TARGET_ARCH_ABI)/libcurl.a 
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include 
include $(PREBUILT_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := curl-ndk 
LOCAL_SRC_FILES := ../cpp/curl-http.cpp 
LOCAL_STATIC_LIBRARIES := libcurl libssl libcrypto libz libjson-c 
LOCAL_LDLIBS := -lz -llog -ljnigraphics 
include $(BUILD_SHARED_LIBRARY) 

クリーン(エラーリンカコマンドは終了コード1(呼び出しを参照するには、-vを使用)で失敗しました)私はNDKをコンパイルしようとしていますが、以下のエラーを表示しています。

/Volumes/Work/Android/Projects/app/src/main/jni/../prebuild/libz.a: error adding symbols: File in wrong format 
clang++: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [/Volumes/Work/Android/Projects/app/src/main/obj/local/arm64-v8a/libcurl-ndk.so] Error 1 

その罰金32ビットでの作業が、64は、そのショーのエラーは、すべてのABIのための1つの事前構築を使用している事前

+0

ビルド前に、ビルドされたライブラリを64ビットバージョンに置き換えますか? – bendaf

答えて

0

おかげビット。あなたはあなたが目標とするABIごとに1つのプレビルドが必要です。ビルド済みのモジュールを書くための典型的な方法は、このようなものです:

include $(CLEAR_VARS) 
LOCAL_MODULE := libz 
LOCAL_SRC_FILES := ../prebuild/$(TARGET_ARCH_ABI)/libz.a 
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include/ 
include $(PREBUILT_STATIC_LIBRARY) 

次に、あなたが事前に作成/ armeabi-v7a/libz.a、事前に作成/ arm64-v8a/libz.aを持つことができる、などの無効化のABIあなたはドン」あなたのApplication.mkにAPP_ABIを使ってビルドしたい(またはビルド前ビルドをしたくない)。

+0

すべてのlibz.aファイルを取得する方法。 –

+0

あなたはあなたが持っているものをどこで手に入れましたか? –