cocos2d-x 2.0 iconv.h问题

时间:2021-10-13 08:40:24
把项目从win32移植到android平台出现了不少问题,cocos2d-x是2.0.3版本,在win32下直接使用cocos2dx\platform\third_party\win32\iconv\iconv.h即可,但是android目录下没有这个文件。从网上下了个iconv库,在Android.mk文件里配置了:LOCAL_C_INCLUDES += $(LOCAL_PATH)/../iconv/include,在使用ndk编译的时候出现libiconv_close libiconv_open等函数未定义问题。还有使用sqlite等第三库时也出现问题,求救啊~~

7 个解决方案

#1


问题已解决,现给出解决方案:
下一个iconv库放到跟Classes同级目录,然后在iconv库根目录下编写Android.mk文件,内容:
LOCAL_PATH:= $(call my-dir)
#libiconv.so
include $(CLEAR_VARS)
LOCAL_MODULE := libiconv
LOCAL_CFLAGS := \
  -Wno-multichar \
  -DAndroid \
  -DLIBDIR="c" \
  -DBUILDING_LIBICONV \
  -DIN_LIBRARY

LOCAL_SRC_FILES := \
  libcharset/lib/localcharset.c \
  lib/iconv.c \
  lib/relocatable.c

LOCAL_C_INCLUDES += \
  $(LOCAL_PATH)/include \
  $(LOCAL_PATH)/libcharset \
  $(LOCAL_PATH)/lib \
  $(LOCAL_PATH)/libcharset/include \
  $(LOCAL_PATH)/srclib
include $(BUILD_STATIC_LIBRARY)

在Classes目录下的Android.mk文件里加入:
LOCAL_C_INCLUDES += \
  $(LOCAL_PATH)/../iconv/include \
  $(LOCAL_PATH)/../libiconv/libcharset \
  $(LOCAL_PATH)/../libiconv/lib \
  $(LOCAL_PATH)/../libiconv/libcharset/include \
  $(LOCAL_PATH)/../libiconv/srclib \
  $(LOCAL_PATH)/../iconv

LOCAL_WHOLE_STATIC_LIBRARIES += libiconv

$(call import-module,iconv)

这样就可以了~~

#2


LZ你好,我现在也遇到了这个问题。你可以把iconv库发给我么?不是官网上面原生的那个

#3


Android NDK: jni/Android.mk: Cannot find module with tag 'iconv' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
jni/Android.mk:44: *** Android NDK: Aborting.    .  Stop.
照你的做,出现如此问题,求救

#4


方便给个iconv库的链接吗?,遇到这个问题好头痛啊

#5


引用 3 楼 world100 的回复:
Android NDK: jni/Android.mk: Cannot find module with tag 'iconv' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
jni/Android.mk:44: *** Android NDK: Aborting.    .  Stop.
照你的做,出现如此问题,求救


把iconv目录拷贝到cocos2dx根目录下,即可
cocos2d-x 2.0 iconv.h问题

#6


引用 4 楼 dg050415 的回复:
方便给个iconv库的链接吗?,遇到这个问题好头痛啊


http://codingnow.cn/cocos2d-x/1038.html

#7


楼主,方便加个QQ吗?  我按照你的步骤就是编译不过

#1


问题已解决,现给出解决方案:
下一个iconv库放到跟Classes同级目录,然后在iconv库根目录下编写Android.mk文件,内容:
LOCAL_PATH:= $(call my-dir)
#libiconv.so
include $(CLEAR_VARS)
LOCAL_MODULE := libiconv
LOCAL_CFLAGS := \
  -Wno-multichar \
  -DAndroid \
  -DLIBDIR="c" \
  -DBUILDING_LIBICONV \
  -DIN_LIBRARY

LOCAL_SRC_FILES := \
  libcharset/lib/localcharset.c \
  lib/iconv.c \
  lib/relocatable.c

LOCAL_C_INCLUDES += \
  $(LOCAL_PATH)/include \
  $(LOCAL_PATH)/libcharset \
  $(LOCAL_PATH)/lib \
  $(LOCAL_PATH)/libcharset/include \
  $(LOCAL_PATH)/srclib
include $(BUILD_STATIC_LIBRARY)

在Classes目录下的Android.mk文件里加入:
LOCAL_C_INCLUDES += \
  $(LOCAL_PATH)/../iconv/include \
  $(LOCAL_PATH)/../libiconv/libcharset \
  $(LOCAL_PATH)/../libiconv/lib \
  $(LOCAL_PATH)/../libiconv/libcharset/include \
  $(LOCAL_PATH)/../libiconv/srclib \
  $(LOCAL_PATH)/../iconv

LOCAL_WHOLE_STATIC_LIBRARIES += libiconv

$(call import-module,iconv)

这样就可以了~~

#2


LZ你好,我现在也遇到了这个问题。你可以把iconv库发给我么?不是官网上面原生的那个

#3


Android NDK: jni/Android.mk: Cannot find module with tag 'iconv' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
jni/Android.mk:44: *** Android NDK: Aborting.    .  Stop.
照你的做,出现如此问题,求救

#4


方便给个iconv库的链接吗?,遇到这个问题好头痛啊

#5


引用 3 楼 world100 的回复:
Android NDK: jni/Android.mk: Cannot find module with tag 'iconv' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
jni/Android.mk:44: *** Android NDK: Aborting.    .  Stop.
照你的做,出现如此问题,求救


把iconv目录拷贝到cocos2dx根目录下,即可
cocos2d-x 2.0 iconv.h问题

#6


引用 4 楼 dg050415 的回复:
方便给个iconv库的链接吗?,遇到这个问题好头痛啊


http://codingnow.cn/cocos2d-x/1038.html

#7


楼主,方便加个QQ吗?  我按照你的步骤就是编译不过