windows 下编译libxml2 libxslt

本文详细介绍了如何在Windows上编译libiconv和libxml2库,包括下载源码、新建工程、拷贝文件、修改配置、解决编译错误,以及如何为编译的库指定命名。适用于32位和64位环境,对开发者进行本地化编译具有指导意义。
摘要由CSDN通过智能技术生成

编译 iconv 库

libiconv是将一种编码格式转换为另一种编码格式的跨平台开源库,http://www.gnu.org/software/libiconv/可以查看支持转换的编码类型。但是libiconv 的开发者并没有发布windows下的源码和库,要想在windows下使用libiconv 库,必须自己手动把libiconv 移植到windows平台,具体步骤如下:

可以直接下载我创建的工程iconv 工程下载

1、去http://ftp.gnu.org/pub/gnu/libiconv/下载源码包,本文使用的是libiconv-1.16.tar.gz

2、新建libiconv 动态库工程

在这里插入图片描述

3、拷贝文件

(1)将 “ libiconv-1.16\lib“ 目录下的 “relocatable.h”, “relocatable.c” and “iconv.c” 三个文件拷贝到工程目录下

(2)将 “libiconv-1.16\libcharset\lib\localcharset.c” 文件拷贝到工程目录下

(3) 将 “libiconv-1.16\libcharset\include\localcharset.h.build.in" 文件拷贝到工程目录下,并修改文件名称为 localcharset.h

(4)将 “\libiconv-1.16\windows\libiconv.rc” 拷贝到工程目录下

(5) 在工程目录下创建 include 目录,

(6) 将 “\libiconv-1.16\include\iconv.h.build.in ” 拷贝到 include 目录下,并重命名为 iconv.h

(7) 将 “\libiconv-1.16\config.h.in” 拷贝到 include 目录下,并重命名为 config.h

(8)将 “\libiconv-1.16\lib” 目录下所有的 .h 和 .def 文件拷贝到 include目录下

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200514150446382.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VndWFuZ2NhaTg=,size_16,color_FFFFFF,t_70#pic_center)

4、工程中添加现有项,将 iconv.c ,localcharset.c、localcharset.h、relocatable.c、relocatable.h、libiconv.rc 添加到工程中.

在这里插入图片描述

5、修改工程配置。如下图

1)配置头文件包含目录在这里插入图片描述

在构建动态链接库libiconv.dll时,最好将运行时库设置为“多线程”。因为libiconv.dll不需要VC运行库,只有使用libiconv.dll的应用程序可能需要也可能不需要VC运行库,所以对VC运行库的依赖可以由将要构建并动态链接到libiconv.dll的应用程序来控制
在这里插入图片描述

由于工程中含有 .c 文件,所以这里我设置不使用预编译头
在这里插入图片描述
6、修改文件中的BUG
(1) localcharset.h : 第21-27行
代码

#if @HAVE_VISIBILITY@ && BUILDING_LIBCHARSET
#define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default")))
#elif defined _MSC_VER && BUILDING_LIBCHARSET
#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport)
#else
#define LIBCHARSET_DLL_EXPORTED
#endif

修改为:


                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值