• 如何使用Visual Studio构建libiconv


    参考博文:How to Build libiconv with Microsoft Visual Studio - CodeProject

    libiconv源码下载地址:libiconv - GNU Project - Free Software Foundation (FSF)

    目前最新版本为1.15,将下载的libiconv-1.15.tar.gz解压后得到libiconv-1.15

    新建Win32工程,名称为libiconv,应用类型为DLL,附加选项为空工程,点击完成

    libiconv-1.15lib中的relocatable.hrelocatable.ciconv.c复制到libiconvlibiconv

    复制libiconv-1.15libcharsetliblocalcharset.clibiconvlibiconv

    复制libiconv-1.15libcharsetincludelocalcharset.h.build.inlibiconvlibiconv,将其重命名为localcharset.h

    libiconv中创建文件夹include

    复制libiconv-1.15includeiconv.h.build.inlibiconvinclude,将其重命名为iconv.h

    复制libiconv-1.15config.h.inlibiconvinclude,将其重命名为config.h

    复制libiconv-1.15lib中的所有头文件(*.h)和定义文件(*.def)libiconvinclude

    libiconvlibiconv中的所有源文件和头文件添加到工程中

    注释localcharset.c中的代码

    /* Get LIBDIR. */
    //#ifndef LIBDIR
    //# include "configmake.h"
    //#endif

    修改iconv.c中的ICONV_CONSTconst

    localcharset.h中注释并添加代码

    //#if @HAVE_VISIBILITY@ && BUILDING_LIBCHARSET
    //#define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default")))
    //#else
    //#define LIBCHARSET_DLL_EXPORTED
    //#endif
    #ifdef BUILDING_LIBCHARSET
    #define LIBCHARSET_DLL_EXPORTED __declspec(dllexport)
    #elif USING_STATIC_LIBICONV
    #define LIBCHARSET_DLL_EXPORTED
    #else
    #define LIBCHARSET_DLL_EXPORTED __declspec(dllimport)
    #endif

    注释config.h中的代码

    /* Define as good substitute value for EILSEQ. */
    //#undef EILSEQ

    iconv.h中注释并添加代码

    //#if @HAVE_WCHAR_T@
    #if HAVE_WCHAR_T
    //#if @USE_MBSTATE_T@
    #if USE_MBSTATE_T
    //#if @USE_MBSTATE_T@
    //#if @BROKEN_WCHAR_H@
    #if USE_MBSTATE_T
    #if BROKEN_WCHAR_H
    //extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, @ICONV_CONST@ char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
    extern LIBICONV_DLL_EXPORTED size_t iconv(iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
    /*#if @HAVE_VISIBILITY@ && BUILDING_LIBICONV
    #define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default")))
    #else
    #define LIBICONV_DLL_EXPORTED
    #endif
    extern LIBICONV_DLL_EXPORTED @DLL_VARIABLE@ int _libiconv_version;*/ /* Likewise */
    #if BUILDING_LIBICONV
    #define LIBICONV_DLL_EXPORTED __declspec(dllexport)
    #elif USING_STATIC_LIBICONV
    #define LIBICONV_DLL_EXPORTED
    #else
    #define LIBICONV_DLL_EXPORTED __declspec(dllimport)
    #endif
    extern LIBICONV_DLL_EXPORTED int _libiconv_version;

    进入工程属性->VC++目录,在包含目录中添加$(SolutionDir)include

    构建工程即可得到库文件libiconv.dll、libiconv.lib

  • 相关阅读:
    Vue的基本使用
    django中的跨表查询梳理
    docker安装及配置
    大数据分析(一)探索性分析
    搜索引擎-一种提示词推荐算法
    shell变量详解
    机器学习之寻找KMeans的最优K
    大数据系统之监控系统(二)Flume的扩展
    大数据系统之监控系统(一)
    大数据系统之系统设计
  • 原文地址:https://www.cnblogs.com/buyishi/p/9319436.html
Copyright © 2020-2023  润新知