버전 4.0.3의 경우 .so 라이브러리를 빌드하려고하지만 그렇게 할 수 없습니다. 내 .mk 파일이 라이브러리와 연결되어 있지 않기 때문에 이러한 문제가 발생한다고 생각합니다.Android Ndk에서 로컬 공유 라이브러리를 빌드 할 수 없습니다.
Android.mk 파일은
Binder.cpp \
BpBinder.cpp \
CursorWindow.cpp \
IInterface.cpp \
IMemory.cpp \
IPCThreadState.cpp \
IPermissionController.cpp \
IServiceManager.cpp \
MemoryDealer.cpp \
MemoryBase.cpp \
MemoryHeapBase.cpp \
MemoryHeapPmem.cpp \
Parcel.cpp \
PermissionCache.cpp \
ProcessState.cpp \
Static.cpp
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS += -lpthread
LOCAL_MODULE := libbinder1
LOCAL_SHARED_LIBRARIES := liblog libcutils libutils
LOCAL_SRC_FILES := $(sources)
include $(BUILD_SHARED_LIBRARY)
#include $(CLEAR_VARS)
#LOCAL_CFLAGS += -DHAVE_PTHREADS
#LOCAL_LDLIBS += -lpthread
#LOCAL_MODULE := libbinder
#LOCAL_SRC_FILES := $(sources)
#include $(BUILD_STATIC_LIBRARY)
이 파일은 나를 위해 정적 즉 .A 파일을 기반으로하지만, 공유 라이브러리를 구축하는 동안 쇼는 오류를 다음과 같습니다.
[armeabi] Compile++ thumb: binder1 <= IPCThreadState.cpp
jni/IPCThreadState.cpp:292:8: error: 'pthread_mutex_t' does not name a type
jni/IPCThreadState.cpp:294:8: error: 'pthread_key_t' does not name a type
jni/IPCThreadState.cpp: In static member function 'static android::IPCThreadState* android::IPCThreadState::self()':
나는 LOCAL_CFLAGS를 사용하여 위의 오류를 수정 + = -DHAVE_PTHREADS
하지만 지금, 라이브러리 나 오류의 거대한 목록을 얻고 생성시.
D:/android-ndk-r9c-windows-x86/android-ndk-r9c/toolchains/arm-linux-androideabi- 4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux- androideabi/bin/ld.exe: error: cannot find -lpthread
D:/android-ndk-r9c-windows-x86/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/binder1/Binder.o: in function android::Vector<android::String16>::do_copy(void*, void const*, unsigned int) const:jni/utils/TypeHelpers.h:142: error: undefined reference to 'android::String16::String16(android::String16 const&)'
도움을 주실 수 있습니다.
기록 할 것으로 예상된다? –
ndk-build ... 나는 시스템 트리가 뭔지 모르겠다! 나는 NDK를 처음 사용합니다. – Mohit
이 라이브러리는 어떻게해야하나요? 어디에서 코드베이스를 얻었습니까? –