'how to build libxml2 for Android NDK
I try to compile libxml2 for android ndk but I get this error:
libxml2-2.9.8/include/libxml/encoding.h:28:19: fatal error: iconv.h: No such file or directory
Yet my libxml2.mk looks like this:
LOCAL_MODULE := libxml2
# taken from make file am__libxml2_la_SOURCES_DIST
xml2_flags := \
-DHAVE_CONFIG_H=1 \
-DHAVE_ERRNO_H=1 \
-DHAVE_RAND=0 \
-DLIBXML_THREAD_ENABLED=1
LOCAL_CFLAGS := \
$(xml2_flags)
LOCAL_C_INCLUDES := \
$(ICONV_PATH)/include \
$(ICONV_PATH)/libcharset/include \
$(LZMA_PATH)/src/liblzma/api \
$(XML2_PATH)/include \
$(XML2_PATH)
LOCAL_SRC_FILES := \
$(XML2_PATH)/buf.c \
$(XML2_PATH)/c14n.c \
$(XML2_PATH)/catalog.c \
$(XML2_PATH)/chvalid.c \
$(XML2_PATH)/debugXML.c \
$(XML2_PATH)/dict.c \
$(XML2_PATH)/DOCBparser.c \
$(XML2_PATH)/encoding.c \
$(XML2_PATH)/entities.c \
$(XML2_PATH)/error.c \
$(XML2_PATH)/globals.c \
$(XML2_PATH)/hash.c \
$(XML2_PATH)/HTMLparser.c \
$(XML2_PATH)/HTMLtree.c \
$(XML2_PATH)/legacy.c \
$(XML2_PATH)/list.c \
$(XML2_PATH)/nanoftp.c \
$(XML2_PATH)/nanohttp.c \
$(XML2_PATH)/parser.c \
$(XML2_PATH)/parserInternals.c \
$(XML2_PATH)/pattern.c \
$(XML2_PATH)/relaxng.c \
$(XML2_PATH)/SAX2.c \
$(XML2_PATH)/SAX.c \
$(XML2_PATH)/schematron.c \
$(XML2_PATH)/threads.c \
$(XML2_PATH)/tree.c \
$(XML2_PATH)/trio.c \
$(XML2_PATH)/triostr.c \
$(XML2_PATH)/uri.c \
$(XML2_PATH)/valid.c \
$(XML2_PATH)/xinclude.c \
$(XML2_PATH)/xlink.c \
$(XML2_PATH)/xmlIO.c \
$(XML2_PATH)/xmlmemory.c \
$(XML2_PATH)/xmlmodule.c \
$(XML2_PATH)/xmlreader.c \
$(XML2_PATH)/xmlregexp.c \
$(XML2_PATH)/xmlsave.c \
$(XML2_PATH)/xmlschemas.c \
$(XML2_PATH)/xmlschemastypes.c \
$(XML2_PATH)/xmlstring.c \
$(XML2_PATH)/xmlunicode.c \
$(XML2_PATH)/xmlwriter.c \
$(XML2_PATH)/xpath.c \
$(XML2_PATH)/xpointer.c \
$(XML2_PATH)/xzlib.c
LOCAL_STATIC_LIBRARIES := iconv liblzma
include $(BUILD_STATIC_LIBRARY)
and my iconv.mk like this
include $(CLEAR_VARS)
# ./configure --build=x86_64-pc-linux-gnu --host=arm-linux-eabi
LOCAL_MODULE := iconv
LOCAL_CFLAGS := \
-Wno-multichar \
-D_ANDROID \
-DBUILDING_LIBICONV \
-DIN_LIBRARY \
-DLIBDIR="\"~/android-libs/usr/local/lib\""
LOCAL_C_INCLUDES := \
$(ICONV_PATH) \
$(ICONV_PATH)/include \
$(ICONV_PATH)/lib \
$(ICONV_PATH)/libcharset/include
LOCAL_SRC_FILES := \
$(ICONV_PATH)/lib/iconv.c \
$(ICONV_PATH)/lib/relocatable.c \
$(ICONV_PATH)/libcharset/lib/localcharset.c
include $(BUILD_STATIC_LIBRARY)
I also tried to comment "LIBXML_ICONV_ENABLED"
in the files "/libxml2/include/libxml/xmlversion.h" and "/libxml2/src/config.h"
For me these two makefiles are right, I do not see where the problem lies is there anyone who can help me?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
