최근에 Android NDK를 사용하기 시작했으며 공유 라이브러리에 몇 가지 문제가 있습니다.
Eclipse로 NDK 및 네이티브 함수를 사용할 수있는 프로젝트를 만들었습니다. 하지만 이제는 QtCreator로 만든 다른 공유 라이브러리를 사용하고 싶습니다.
여기 내 질문이 있습니다. NDK 프로젝트에 공유 라이브러리를 포함 할 수 있습니까? ndk-build를 호출하지 않아도 만들 수 있습니까?
예를 들어 보겠습니다. 나는 그런 간단한 공유 라이브러리를 작성하는 경우 : 내가 할 수공유 라이브러리 및 Android NDK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := api
LOCAL_SRC_FILES := ../sharedLibs/libapi.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := dbapi
LOCAL_SRC_FILES := dbapi.cpp
LOCAL_C_INCLUDES += ../includes
LOCAL_SHARED_LIBRARIES := api
include $(BUILD_SHARED_LIBRARY)
그리고 물론 :
g++ -Wall -shared -fPIC -o libapi.so MyDLL.cpp
나는이 (Android.mk)처럼 내 NDK 프로젝트에서 사용할 수 없습니다 내 기본 NDK 측면에서 해당 기능을 사용할 수 있습니까? 내 이클립스 프로젝트를 빌드 할 때이 방법을 사용 는
,이 오류에 직면하고있어 (? 참, 거짓)
/libs/armeabi-v7a/libapi.so: File format not recognized
가 내 공유 lib 디렉토리는 NDK 빌드와 호환되지 생각했다.
답변 해 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 나는이 단일 커맨드 라인 인'g ++ -Wall -shared -fPIC -o libapi.so MyDLL.cpp'을 사용하여 빌드했다. 그래서 당신이 말하는 것에 따르면, ndk 빌더를 사용하지 않으면이 라이브러리를 포함 할 수 없습니까? – Sierra
그래서 gd ++에서 g ++가 아닌 배포본의 g ++를 사용하여 리눅스에서 컴파일 하시겠습니까? – Gerald
나는 cygwin을 사용하여 ndk g ++없이 윈도우에있다. 내 C++ 프로젝트 용 Android.mk를 만들려고했는데 ndk-build를 호출했습니다 ... 작동합니다, 감사합니다 :) – Sierra