NDK и iconv.h зависимость - PullRequest
       4

NDK и iconv.h зависимость

1 голос
/ 15 марта 2011

Я пытаюсь создать библиотеку с Adroid NDK, которая зависит от iconv.h

Это то, что я сделал до сих пор:

Я создал структуру проекта следующим образом:

<my_prj>/jni
    - Android.mk
    - Application.mk

<my_prj>/jni/zxing
    - all my lib source files requiring iconv.h

<my_prj>/external/libiconv-1.13.1
    - libiconv sources downloaded from here http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

Вот мой файл jni / Android.mk:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := libiconv

LOCAL_CFLAGS := \
    -Wno-multichar \
    -D_ANDROID \
    -DLIBDIR="c" \
    -DBUILDING_LIBICONV \
    -DIN_LIBRARY

LOCAL_SRC_FILES := \
    ../external/libiconv-1.13.1/lib/iconv.c \
    ../external/libiconv-1.13.1/libcharset/lib/localcharset.c \
    ../external/libiconv-1.13.1/lib/relocatable.c

LOCAL_C_INCLUDES += \
    ../external/libiconv-1.13.1/include \
    ../external/libiconv-1.13.1/libcharset \
    ../external/libiconv-1.13.1/libcharset/include

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS) 

LOCAL_MODULE    := libzxing
LOCAL_SRC_FILES := \
    zxing/DecodeHints.cpp \
    zxing/ReaderException.cpp \
    ...and many more...

LOCAL_C_INCLUDES += \
    ../external/libiconv-1.13.1/include

LOCAL_STATIC_LIBRARIES := libiconv

include $(BUILD_SHARED_LIBRARY)

по этой теме: http://groups.google.com/group/android-ndk/browse_thread/thread/012d679319e4ea6e

Итак, я запускаю «./configure && make» из /external/libiconv-1.13.1, чтобы сгенерировать iconv.h из iconv.h.in

Затем я запускаю ndk-build из / jni / zxing

  • Весь мой zxing теперь компилируется без проблем.
  • / external / libiconv-1.13.1 / lib / iconv.h также компилируется
  • Принимая во внимание, что /external/libiconv-1.13.1/libcharset/lib/localcharset.c выдает мне следующую ошибку:

    lib / localcharset.c: 49: 24: ошибка: langinfo.h: такого файла или каталога нет

Я предполагаю, что я сделал что-то не так, делая ./configure && make на libiconv, поскольку включение "langinfo.h" обусловлено HAVE_LANGINFO_CODESET, определенным в libiconv-1.13.1 / config.h, который, в свою очередь, происходит из libiconv -1.13.1 / config.h.in ...

Кстати, если я установлю HAVE_LANGINFO_CODESET в 0, то у меня будут другие ошибки при компиляции localcharset.c

Итак, у меня нет идей :( Может кто-то помочь мне, пожалуйста? Спасибо, Лука.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...