2016-06-24 3 views
0

안녕하세요 찾고 도움말 정적 lib에 대한 도움말 안드로이드 코어 libbinder에 대한 컴파일.libbinder 정적 컴파일 오류 ndk11c api 21

여기 여기에 문제가 ..에서

[armeabi] Clean   : binder [armeabi] 
[armeabi] Clean   : gnustl_shared [armeabi] 
[armeabi] Clean   : gnustl_static [armeabi] 
[armeabi] Compile++ thumb: binder <= AppOpsManager.cpp 
[armeabi] Compile++ thumb: binder <= Binder.cpp 
[armeabi] Compile++ thumb: binder <= BpBinder.cpp 
[armeabi] Compile++ thumb: binder <= BufferedTextOutput.cpp 
[armeabi] Compile++ thumb: binder <= Debug.cpp 
[armeabi] Compile++ thumb: binder <= IAppOpsCallback.cpp 
[armeabi] Compile++ thumb: binder <= IAppOpsService.cpp 
[armeabi] Compile++ thumb: binder <= IBatteryStats.cpp 
[armeabi] Compile++ thumb: binder <= IInterface.cpp 
[armeabi] Compile++ thumb: binder <= IMemory.cpp 
[armeabi] Compile++ thumb: binder <= IPCThreadState.cpp 
[armeabi] Compile++ thumb: binder <= IPermissionController.cpp 
[armeabi] Compile++ thumb: binder <= IProcessInfoService.cpp 
[armeabi] Compile++ thumb: binder <= IServiceManager.cpp 
[armeabi] Compile++ thumb: binder <= MemoryBase.cpp 
[armeabi] Compile++ thumb: binder <= MemoryDealer.cpp 
[armeabi] Compile++ thumb: binder <= MemoryHeapBase.cpp 
In file included from /home/adminuser/android-ndk-r11c/platforms/android-21/arch-arm/usr/include/cutils/atomic.h:22:0, 
       from jni/MemoryHeapBase.cpp:30: 
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:816:5: error: 'std::__atomic_is_lock_free' declared as an 'inline' variable 
    atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:816:5: error: template declaration of 'bool std::__atomic_is_lock_free' 
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:816:5: error: expected primary-expression before 'const' 
    atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:816:5: error: expected ')' before 'const' 
In file included from /home/adminuser/android-ndk-r11c/platforms/android-21/arch-arm/usr/include/utils/RefBase.h:20:0, 
       from /home/adminuser/android-ndk-r11c/platforms/android-21/arch-arm/usr/include/binder/IMemory.h:24, 
       from /home/adminuser/android-ndk-r11c/platforms/android-21/arch-arm/usr/include/binder/MemoryHeapBase.h:23, 
       from jni/MemoryHeapBase.cpp:32: 
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:819:3: error: expected ')' before 'template' 
    template<typename _ITp> 
^
In file included from /home/adminuser/android-ndk-r11c/platforms/android-21/arch-arm/usr/include/cutils/atomic.h:22:0, 
       from jni/MemoryHeapBase.cpp:30: 
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:830:5: error: expected unqualified-id before 'void' 
    atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept; 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:830:5: error: expected ')' before 'void' 
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:830:5: error: expected ')' before 'void' 
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:834:5: error: variable or field '__atomic_store_n' declared void 
    atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:834:5: error: expected primary-expression before '*' token 
    atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:834:5: error: '__a' was not declared in this scope 
    atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:834:5: error: expected primary-expression before '__i' 
    atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:834:5: error: expected primary-expression before '__m' 
    atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:840:5: error: variable or field '__atomic_store_n' declared void 
    atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:840:5: error: expected primary-expression before 'volatile' 
    atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 
    ^
/home/adminuser/android-ndk-r11c/sources/cxx-stl/gnu-libstdc++/4.9/include/atomic:840:5: error: expected ')' before 'volatile' 
make: *** [obj/local/armeabi/objs/binder/MemoryHeapBase.o] Error 1 

소스 다운로드 내 Android.mk 및 Application.mk

sources := \ 
    AppOpsManager.cpp \ 
    Binder.cpp \ 
    BpBinder.cpp \ 
    BufferedTextOutput.cpp \ 
    Debug.cpp \ 
    IAppOpsCallback.cpp \ 
    IAppOpsService.cpp \ 
    IBatteryStats.cpp \ 
    IInterface.cpp \ 
    IMemory.cpp \ 
    IPCThreadState.cpp \ 
    IPermissionController.cpp \ 
    IProcessInfoService.cpp \ 
    IServiceManager.cpp \ 
    MemoryBase.cpp \ 
    MemoryDealer.cpp \ 
    MemoryHeapBase.cpp \ 
    Parcel.cpp \ 
    PermissionCache.cpp \ 
    PersistableBundle.cpp \ 
    ProcessInfoService.cpp \ 
    ProcessState.cpp \ 
    Static.cpp \ 
    Status.cpp \ 
    TextOutput.cpp 

LOCAL_PATH:= $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libbinder 
LOCAL_SRC_FILES := $(sources) 
LOCAL_STATIC_LIBRARIES := libbase libutils libcutils 
LOCAL_EXPORT_STATIC_LIBRARY_HEADERS := libbase libutils libcutils libbinder 
#LOCAL_CPPFLAGS := -DBINDER_IPC_32BIT=1 
#LOCAL_CPPFLAGS += -Werror 
LOCAL_CFLAGS += -DHAVE_SYS_UIO_H -DHAVE_PTHREADS 
LOCAL_CPPFLAGS += -D__GXX_EXPERIMENTAL_CXX0X__ -DHAVE_SYS_UIO_H -DHAVE_PTHREADS -std=gnu++11 
#LOCAL_CPPFLAGS += -std=c++11 
#LOCAL_CPPFLAGS += -frtti -fexceptions 
include $(BUILD_STATIC_LIBRARY) 


APP_MODULES := libbinder 
APP_ABI := armeabi 
APP_PLATFORM := android-21 
APP_STL := gnustl_static 
#NDK_TOOLCHAIN_VERSION = 4.8 

입니다. https://android.googlesource.com/platform/frameworks/native/+/master/libs/

제가 안드로이드 NDK-r11c/플랫폼/안드로이드 21/아치 팔 헤더 포함했다는/usr /은/ cutils 유틸 바인더 필요했다 등을 포함한다. android ndk 11c와 함께 VMWARE cent os 7.x를 사용 중입니다 ...

어떤 조언이 필요합니까?

답변

0

거기에는 정확한 버그가 확실하지 않지만 헤더 충돌이있는 것으로 보입니다.

Workaroud : 전에 명시 적으로 #include <atomic> (또는 반복적으로 포함)