컴파일 오류 질문 드립니다.
안녕하세요.
빌드 오류 관련하여 질문 드립니다.
빌드시키면 아래와 같은 에러가 나옵니다.
...
out/target/product/msm7630_surf/obj/STATIC_LIBRARIES/libapplypatch_intermediates/libapplypatch.a(applypatch.o): In function `applypatch':
/home/hwajin.dan/bryce/1007/android/bootable/recovery/applypatch/applypatch.c:749: undefined reference to `ApplyIPDiffPatch' out/target/product/msm7630_surf/obj/STATIC_LIBRARIES/libapplypatch_intermediates/libapplypatch.a(imgpatch.o): In function `ApplyImagePatch':
/home/hwajin.dan/bryce/1007/android/bootable/recovery/applypatch/imgpatch.c:109: undefined reference to `ApplyIPDiffPatch'
/home/hwajin.dan/bryce/1007/android/bootable/recovery/applypatch/imgpatch.c:216: undefined reference to `ipth_UpdateOneFile'
collect2: ld returned 1 exit status
make: *** [out/target/product/msm7630_surf/obj/EXECUTABLES/updater_intermediates/LINKED/updater] Error 1
Done.
우선 ApplyIPDiffPatch <-- 이 놈을 찾아가보면
// ippatch.c
int ApplyIPDiffPatch(const unsigned char* old_data, ssize_t old_size,
const Value* patch, ssize_t patch_offset,
SinkFn sink, void* token, SHA_CTX* ctx);
이렇게 헤더 파일에 선언부만 나와 있습니다.
ippatch.c 파일은 찾아보니 없고 ...applypatch/ipthobj/ippatch.o <-- 이와 같이 applypatch 폴더 아래
ipthobj 라는 폴더가 있고 그 안에 ippatch.o 가 있습니다.
make 파일을 보니 아래와 같이 나와 있고
ipth_objs := $(call find-subdir-subdir-files,ipthobj, *.o)
LOCAL_AROBJS := $(foreach %.o, $(filter %.o,$(ipth_objs)), $(addprefix $(LOCAL_PATH)/,$(%.o)))
LOCAL_CFLAGS += -DLGE_FOTA
이 중 call find-subdir-subdir-files,ipthobj, *.o <-- 이 부분이 뭔가 범상치 않아 이 부분을 마구 수정해 봤지만
죽어도 안되네요..ㅠㅠ
call find-subdir-subdir-files,ipthobj, *.o <--- 이 의미는 무엇이며 왜 undefined reference 라는 컴파일 에러가 나는것인가요?
어떻게 수정해줘야 undefined reference 함수를 컴파일러가 인지 할 수 있을까요?
아.. 리눅스는 정말 너무 어렵네요.
아무쪼록 고수님들의 많은 도움 부탁 드리겠습니다.
감사합니다.
댓글 달기