2011-03-01 6 views
2

NDK를 사용하여 컴파일하고 올바르게 실행하는 자체 C++ 코드가 있습니다. Android에 내장 된 libpng 라이브러리에 액세스 할 수있는 방법이 전혀 없기 때문에 내 유일한 옵션은 내 버전을 컴파일하고이를 사용하는 것입니다 (대안에 대해 알고 싶습니다).가져 오기 경로 오류에서 모듈을 찾을 수 없습니다.

현재 libpng을 사용하도록 코드를 확장하려고합니다. 내 코드를 빌드하는 방법을 알아낼 수 없습니다. 문서를 읽고 뉴스 그룹 질문 및 답변을 훑어 보았지만 문제를 해결할 수 없습니다.

소스 트리에 libpng을 복사했습니다. 나는 정적 라이브러리로 libpng을 컴파일하려고하고있다. 그리고 나서이 코드를 사용하여 libpng의 기능에 접근한다. 여기에 내 메이크업 파일을 지금까지 무엇을 가지고 :

########## Directory layout ########## 

jni/ 
    Android.mk 
    mylib/ 
    Android.mk 
    source files... 
    libpng/ 
    Android.mk 
    source files... 

########## Top-level Android.mk ########## 

LOCAL_PATH := $(call my-dir) 
include $(LOCAL_PATH)/libpng/Android.mk 
include $(LOCAL_PATH)/mylib/Android.mk 

########## mylib Android.mk ########## 

include $(CLEAR_VARS) 

NDK_MODULE_PATH := $(LOCAL_PATH) 

LOCAL_STATIC_LIBRARIES := libpng 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/libpng 

LOCAL_LDLIBS := -llog 
LOCAL_MODULE := mylib 
LOCAL_CFLAGS := 

sources := mylib.cpp 
LOCAL_SRC_FILES += $(sources:%=mylib/%) 

include $(BUILD_SHARED_LIBRARY) 
$(call import-module, libpng) 

########## libpng Android.mk ########## 

include $(CLEAR_VARS) 

LOCAL_CFLAGS := 
LOCAL_MODULE := libpng 

sources :=\ 
    png.c \ # etc. 

LOCAL_SRC_FILES += $(sources:%=libpng/%) 
LOCAL_LDLIBS := -lz 
include $(BUILD_STATIC_LIBRARY) 

MYLIB 내가 모든의 libpng 물질을 제거하는 경우 이미 컴파일 내 코드입니다. libpng도 성공적으로 컴파일됩니다. 주의 사항 내 코드와 libpng 코드를 별도의 디렉토리에 보관하고 최상위 레벨 make 파일을 사용하여 컴파일하려고합니다.

내가 MYLIB를 구축 할 때에 붙어 현재 오류 메시지는 다음과 같습니다

은 는 는

는 수입 경로 태그 '의 libpng'와 모듈을 찾을 수 없습니다
는 안드로이드 NDK : 당신은 확실히 당신의 NDK_MODULE_PATH 변수가 제대로 정의되어 있습니까 ?

NDK_MODULE_PATH를 $ (LOCAL_PATH)로 설정했습니다. 이는 빌드 프로세스가 libpng/Android.mk를 찾지 만 그렇지 않다는 것을 의미합니다. 누구든지 도와 줄 수 있습니까?

답변

3

libpng

대신 LOCAL_MODULE := png
관련 문제