안드로이드 개발 질문/답변
(글 수 45,052)
휴.. 이거때문에 참 골머리가 아프네요..
지금 문자인식을 android에서 해보려고 하는데요
tesseract-ocr을 사용하려면 빌드를 해야되는데 왜케 복잡한가요 - -
혹시 해보신분 있으신가요 ?
제 문제는... 현재
NDK 는 5r 쓰고 있구요
cygwin으로 ndk-build 이용해서 하고 있습니다.
그런데 쭉쭉 Complle 해나가다가 갑자기 jni.cpp 후...
utils/Log.h 파일이 없다고 나오네요... 그전에도 여러가지 jni.h 와... jconfig.h 파일도 없다고해서
파일을 받아서 잘 넘겼는데 uitls/Log.h 은 해결 방법을 찾길 못하겠네요;;;
파일이 없다고 하고는 LOGV, LOGE 등등 명확하지 않다고 나오구요....
혹시 tesseract-ocr 써보신분 ㅠㅠ 아니면 지금 제생각엔 utils/Log.h 파일을 받으면될꺼같은데
있으신분 답변좀 부탁드려요^^
-------------------------------------------------------------------------------
우디 분 말대로 그냥 일단 주석 처리를 하고 막 이것저것 했는데..-_-
이젠 jpegio 쪽이 또 문제네요 .. 이문제는 여러군데에서 많이 나는거같긴한데..
혹시 해결 방법 아시는 분 있으신가요 ㅠ?
D:/project/test/jni/liblept/jpegio.c:496: undefined reference to `jpeg_std_error'
D:/project/test/jni/liblept/jpegio.c:499: undefined reference to `jpeg_CreateCompress'
D:/project/test/jni/liblept/jpegio.c:500: undefined reference to `jpeg_stdio_dest'
D:/project/test/jni/liblept/jpegio.c:514: undefined reference to `jpeg_set_defaults'
D:/project/test/jni/liblept/jpegio.c:528: undefined reference to `jpeg_set_quality'
D:/project/test/jni/liblept/jpegio.c:533: undefined reference to `jpeg_start_compress'
D:/project/test/jni/liblept/jpegio.c:536: undefined reference to `jpeg_write_marker'
D:/project/test/jni/liblept/jpegio.c:579: undefined reference to `jpeg_finish_compress'
D:/project/test/jni/liblept/jpegio.c:588: undefined reference to `jpeg_destroy_compress'
D:/project/test/jni/liblept/jpegio.c:576: undefined reference to `jpeg_write_scanlines'
D:/project/test/jni/liblept/jpegio.c:563: undefined reference to `jpeg_write_scanlines'
D:/project/test/jni/liblept/jpegio.c:530: undefined reference to `jpeg_simple_progression'
D:/project/test/jni/liblept/jpegio.c:496: undefined reference to `jpeg_std_error'
D:/project/test/jni/liblept/jpegio.c:499: undefined reference to `jpeg_CreateCompress'
D:/project/test/jni/liblept/jpegio.c:500: undefined reference to `jpeg_stdio_dest'
D:/project/test/obj/local/armeabi/objs/ocr/liblept/jpegio.o: In function `jpeg_error_do_not_exit':
D:/project/test/jni/liblept/jpegio.c:1009: undefined reference to `jpeg_destroy'
D:/project/test/obj/local/armeabi/objs/ocr/liblept/jpegio.o: In function `pixReadStreamJpeg':
D:/project/test/jni/liblept/jpegio.c:218: undefined reference to `jpeg_std_error'
D:/project/test/jni/liblept/jpegio.c:221: undefined reference to `jpeg_CreateDecompress'
D:/project/test/jni/liblept/jpegio.c:224: undefined reference to `jpeg_set_marker_processor'
D:/project/test/jni/liblept/jpegio.c:225: undefined reference to `jpeg_stdio_src'
D:/project/test/jni/liblept/jpegio.c:226: undefined reference to `jpeg_read_header'
D:/project/test/jni/liblept/jpegio.c:230: undefined reference to `jpeg_calc_output_dimensions'
D:/project/test/jni/liblept/jpegio.c:268: undefined reference to `jpeg_start_decompress'
D:/project/test/jni/liblept/jpegio.c:294: undefined reference to `jpeg_read_scanlines'
D:/project/test/jni/liblept/jpegio.c:357: undefined reference to `jpeg_finish_decompress'
D:/project/test/jni/liblept/jpegio.c:358: undefined reference to `jpeg_destroy_decompress'
D:/project/test/jni/liblept/jpegio.c:332: undefined reference to `jpeg_read_scanlines'
D:/project/test/jni/liblept/jpegio.c:273: undefined reference to `jpeg_start_decompress'
D:/project/test/jni/liblept/jpegio.c:264: undefined reference to `jpeg_start_decompress'
오류 코드가 이겁니다...
지금 문자인식을 android에서 해보려고 하는데요
tesseract-ocr을 사용하려면 빌드를 해야되는데 왜케 복잡한가요 - -
혹시 해보신분 있으신가요 ?
제 문제는... 현재
NDK 는 5r 쓰고 있구요
cygwin으로 ndk-build 이용해서 하고 있습니다.
그런데 쭉쭉 Complle 해나가다가 갑자기 jni.cpp 후...
utils/Log.h 파일이 없다고 나오네요... 그전에도 여러가지 jni.h 와... jconfig.h 파일도 없다고해서
파일을 받아서 잘 넘겼는데 uitls/Log.h 은 해결 방법을 찾길 못하겠네요;;;
파일이 없다고 하고는 LOGV, LOGE 등등 명확하지 않다고 나오구요....
혹시 tesseract-ocr 써보신분 ㅠㅠ 아니면 지금 제생각엔 utils/Log.h 파일을 받으면될꺼같은데
있으신분 답변좀 부탁드려요^^
-------------------------------------------------------------------------------
우디 분 말대로 그냥 일단 주석 처리를 하고 막 이것저것 했는데..-_-
이젠 jpegio 쪽이 또 문제네요 .. 이문제는 여러군데에서 많이 나는거같긴한데..
혹시 해결 방법 아시는 분 있으신가요 ㅠ?
D:/project/test/jni/liblept/jpegio.c:496: undefined reference to `jpeg_std_error'
D:/project/test/jni/liblept/jpegio.c:499: undefined reference to `jpeg_CreateCompress'
D:/project/test/jni/liblept/jpegio.c:500: undefined reference to `jpeg_stdio_dest'
D:/project/test/jni/liblept/jpegio.c:514: undefined reference to `jpeg_set_defaults'
D:/project/test/jni/liblept/jpegio.c:528: undefined reference to `jpeg_set_quality'
D:/project/test/jni/liblept/jpegio.c:533: undefined reference to `jpeg_start_compress'
D:/project/test/jni/liblept/jpegio.c:536: undefined reference to `jpeg_write_marker'
D:/project/test/jni/liblept/jpegio.c:579: undefined reference to `jpeg_finish_compress'
D:/project/test/jni/liblept/jpegio.c:588: undefined reference to `jpeg_destroy_compress'
D:/project/test/jni/liblept/jpegio.c:576: undefined reference to `jpeg_write_scanlines'
D:/project/test/jni/liblept/jpegio.c:563: undefined reference to `jpeg_write_scanlines'
D:/project/test/jni/liblept/jpegio.c:530: undefined reference to `jpeg_simple_progression'
D:/project/test/jni/liblept/jpegio.c:496: undefined reference to `jpeg_std_error'
D:/project/test/jni/liblept/jpegio.c:499: undefined reference to `jpeg_CreateCompress'
D:/project/test/jni/liblept/jpegio.c:500: undefined reference to `jpeg_stdio_dest'
D:/project/test/obj/local/armeabi/objs/ocr/liblept/jpegio.o: In function `jpeg_error_do_not_exit':
D:/project/test/jni/liblept/jpegio.c:1009: undefined reference to `jpeg_destroy'
D:/project/test/obj/local/armeabi/objs/ocr/liblept/jpegio.o: In function `pixReadStreamJpeg':
D:/project/test/jni/liblept/jpegio.c:218: undefined reference to `jpeg_std_error'
D:/project/test/jni/liblept/jpegio.c:221: undefined reference to `jpeg_CreateDecompress'
D:/project/test/jni/liblept/jpegio.c:224: undefined reference to `jpeg_set_marker_processor'
D:/project/test/jni/liblept/jpegio.c:225: undefined reference to `jpeg_stdio_src'
D:/project/test/jni/liblept/jpegio.c:226: undefined reference to `jpeg_read_header'
D:/project/test/jni/liblept/jpegio.c:230: undefined reference to `jpeg_calc_output_dimensions'
D:/project/test/jni/liblept/jpegio.c:268: undefined reference to `jpeg_start_decompress'
D:/project/test/jni/liblept/jpegio.c:294: undefined reference to `jpeg_read_scanlines'
D:/project/test/jni/liblept/jpegio.c:357: undefined reference to `jpeg_finish_decompress'
D:/project/test/jni/liblept/jpegio.c:358: undefined reference to `jpeg_destroy_decompress'
D:/project/test/jni/liblept/jpegio.c:332: undefined reference to `jpeg_read_scanlines'
D:/project/test/jni/liblept/jpegio.c:273: undefined reference to `jpeg_start_decompress'
D:/project/test/jni/liblept/jpegio.c:264: undefined reference to `jpeg_start_decompress'
오류 코드가 이겁니다...
2011.02.26 01:39:08
시간을 내서 ndk-buld 까지만 해 봤습니다. 리눅스에서 빌드하는 방법을 적어볼께요.
cygwin 도 비슷할 거 같긴 한데 확신은 못하겠습니다.
먼저 다음 명령을 사용하여 소스코드를 다운받습니다.
$ git clone git://android.git.kernel.org/platform/external/tesseract.git
$ git clone git://android.git.kernel.org/platform/external/jpeg.git
$ git clone git://android.git.kernel.org/platform/system/core.git
project 루트 디렉토리 아래 jni 서브디렉토리, 그 아래 include 서브디렉토리를 만듭니다.
$ mkdir -p project/jni/include
tesseract 와 jpeg 소스를 통째로 project/jni 디렉토리로 복사 또는 옮깁니다.
$ cp -r tesseract project/jni
$ cp -r jpeg project/jni
core/include/cutils 디렉토리를 통째로 project/jni/include 로 복사 또는 옮깁니다.
$ cp -r core/include/cutils project/jni/include
core/libcutils/ashmem-dev.c 파일을 project/jni/jpeg 로 복사 또는 옮깁니다.
$ cp core/libcutils/ashmem-dev.c project/jni/jpeg
project/jni/Android.mk 파일을 만듭니다.
======
LOCAL_PATH := $(my-dir)
include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
jpeg \
tesseract \
))
======
project/jni/tesseract/Android.mk, project/jni/tesseract/api/jni.cpp, project/jni/jpeg/Android.mk, 파일을 수정합니다.
======
diff tesseract/Android.mk project/jni/tesseract/Android.mk
406c406,407
< external/jpeg
---
> $(LOCAL_PATH)/../jpeg \
> $(LOCAL_PATH)/../include
433c434
< LOCAL_STATIC_LIBRARIES:=$(LOCAL_STATIC_LIBRARIES_)
---
> #LOCAL_STATIC_LIBRARIES:=$(LOCAL_STATIC_LIBRARIES_)
436c437,439
< liblog
---
> libjpeg
> # liblog
> LOCAL_LDLIBS := -llog
======
diff tesseract/api/jni.cpp project/jni/tesseract/api/jni.cpp
18c18
< #include <nativehelper/jni.h>
---
> #include <jni.h>
42c42
< #include <utils/Log.h>
---
> #include <cutils/log.h>
======
diff jpeg/Android.mk project/jni/jpeg/Android.mk
14c14
< jquant2.c jutils.c jmemmgr.c \
---
> jquant2.c jutils.c jmemmgr.c ashmem-dev.c \
16a17
> LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include
======
project 디렉토리에서 ndk-build 합니다.
$ ndk-build
…
SharedLibrary : libjpeg.so
Install : libjpeg.so => libs/armeabi/libjpeg.so
...
SharedLibrary : libocr.so
Install : libocr.so => libs/armeabi/libocr.so
잘못된 부분이 있으면 지적해 주시기 바랍니다.




그러나.. 그 이후에도 없는 퍄일들이 계속 나와서 때려쳤습니다 ㅎㅎ