Я пытаюсь создать библиотеку с 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
Итак, у меня нет идей :(
Может кто-то помочь мне, пожалуйста?
Спасибо, Лука.