android ndk在cygwin下编译找不到iconv.h

时间:2022-01-27 08:42:53
    程序中用到了libiconv,想移植到android上,但在cygwin1.7下利用ndk编译时出错:iconv.h,no such file or directory,但我iconv库是装好了的,通过iconv --version可以查看其版本为1.13,在/usr/include中也有iconv.h文件,不过在Android.mk文件中指定该目录仍提示找不到。 
    看了之前的帖子也有人遇到这个问题,但是都没有说到底为什么,各位高手指点一下,应该怎么弄啊?

5 个解决方案

#1


Android.mk内加 LOCAL_C_INCLUDES+=/usr/include
指定下搜索路径

#2


指定了。看了其他的资料,ndk没有开放libiconv,需要用ndk再编译一个libiconv出来,但是目前编译有问题,
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := iconv
LOCAL_CFLAGS := \
    -Wno-multichar \
    -D_ANDROID \
    -DLIBDIR="c" \
    -DBUILDING_LIBICONV \
    -DIN_LIBRARY

LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/libiconv-1.13.1 \
    $(LOCAL_PATH)/libiconv-1.13.1/include \
    $(LOCAL_PATH)/libiconv-1.13.1/lib \
    $(LOCAL_PATH)/libiconv-1.13.1/libcharset/include
    
LOCAL_SRC_FILES := \
    libiconv-1.13.1/libcharset/lib/localcharset.c \
    libiconv-1.13.1/lib/iconv.c \
    libiconv-1.13.1/lib/relocatable.c
include $(BUILD_STATIC_LIBRARY)
后面是我的工程内容,包含了iconv.h后在stdio.h和error.h等诸多头文件中报了一大堆错误,不知道是为什么

#3


参考了下网上的这个配置应该没错了 报了什么错? 

#4


感觉是头文件包含的问题,
iconv.h:53:error:storage class specified for parameter 'libiconv_t'
stddef.h:149:error:storage class specified for parameter 'ptrdiff_t'
stddef.h:211:error:storage class specified for parameter 'size_t'
...........
等等一大堆类似的错误,不知道应该怎么搞啊~~~不知道人家都是怎么编译通过的。。。

#5


我也是编译的一堆问题。还是不熟悉liunx啊

#1


Android.mk内加 LOCAL_C_INCLUDES+=/usr/include
指定下搜索路径

#2


指定了。看了其他的资料,ndk没有开放libiconv,需要用ndk再编译一个libiconv出来,但是目前编译有问题,
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := iconv
LOCAL_CFLAGS := \
    -Wno-multichar \
    -D_ANDROID \
    -DLIBDIR="c" \
    -DBUILDING_LIBICONV \
    -DIN_LIBRARY

LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/libiconv-1.13.1 \
    $(LOCAL_PATH)/libiconv-1.13.1/include \
    $(LOCAL_PATH)/libiconv-1.13.1/lib \
    $(LOCAL_PATH)/libiconv-1.13.1/libcharset/include
    
LOCAL_SRC_FILES := \
    libiconv-1.13.1/libcharset/lib/localcharset.c \
    libiconv-1.13.1/lib/iconv.c \
    libiconv-1.13.1/lib/relocatable.c
include $(BUILD_STATIC_LIBRARY)
后面是我的工程内容,包含了iconv.h后在stdio.h和error.h等诸多头文件中报了一大堆错误,不知道是为什么

#3


参考了下网上的这个配置应该没错了 报了什么错? 

#4


感觉是头文件包含的问题,
iconv.h:53:error:storage class specified for parameter 'libiconv_t'
stddef.h:149:error:storage class specified for parameter 'ptrdiff_t'
stddef.h:211:error:storage class specified for parameter 'size_t'
...........
等等一大堆类似的错误,不知道应该怎么搞啊~~~不知道人家都是怎么编译通过的。。。

#5


我也是编译的一堆问题。还是不熟悉liunx啊