博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用Visual Studio构建libiconv
阅读量:6434 次
发布时间:2019-06-23

本文共 2286 字,大约阅读时间需要 7 分钟。

参考博文:

libiconv源码下载地址:

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

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

 

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

复制libiconv-1.15\libcharset\lib\localcharset.clibiconv\libiconv

复制libiconv-1.15\libcharset\include\localcharset.h.build.inlibiconv\libiconv,将其重命名为localcharset.h

libiconv中创建文件夹include

复制libiconv-1.15\include\iconv.h.build.inlibiconv\include,将其重命名为iconv.h

复制libiconv-1.15\config.h.inlibiconv\include,将其重命名为config.h

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

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

 

注释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#endifextern 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)#endifextern LIBICONV_DLL_EXPORTED int _libiconv_version;

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

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

 

转载于:https://www.cnblogs.com/buyishi/p/9319436.html

你可能感兴趣的文章
a33核心板启动问题
查看>>
linux NFS共享文件
查看>>
mysql 时间格式函数
查看>>
android中进行https连接的方式的详解
查看>>
MySQL查看字符集
查看>>
stylecop代码检查提示
查看>>
synchronized关键字浅谈
查看>>
javascript获取页面宽度和高度以及元素的位置
查看>>
从storyboard加载视图控制器
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 questionOne
查看>>
Android Camera HAL浅析
查看>>
memcache启动脚本
查看>>
OpenCart开源电子商务系统使用教程之网站后台(1)
查看>>
保存一篇关于MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)...
查看>>
Java中使用Jedis操作Redis
查看>>
Dubbo使用jsr303框架hibernate-validator遇到 ConstraintDescriptorImpl could not be instantiated
查看>>
Chapter~3 Python基础
查看>>
Android Studio SVN
查看>>
深入研究 VS Code for Golang
查看>>
runtime自我总结
查看>>