Win10+VC2015+libxml2-2.9.7 编译过程

7 篇文章 0 订阅
5 篇文章 0 订阅

当前项目使用C++开发Windows下使用的一个应用,由于需要涉及xml文件的读写,在进行选型后考虑使用libxml2实现(跨平台需求),当前最新的版本为:2.9.7。

阅读readme后,发现依赖libiconv(在其提供的编译命令中最好提供libiconv的lib&include文件,否则需要将这些文件放在libxml2目录中)。

cscript configure.js compiler=msvc prefix=c:\opt 
    include=c:\opt\include lib=c:\opt\lib debug=yes

#prefix 代表install的位置
#include & lib 代表依赖库的位置,此处基本就是指libiconv的lib文件和h文件

编译libiconv

网上找了一些资料后,发现很多同行都去建了vs项目完成编译(我也尝试用了一下,但有些编译的有问题,编译libxml2时报错),但我阅读libiconv (当前最新的版本为:1.15)的readme时,其已指明可以直接通过make完成编译工作(不支持ms的nmake),而且操作步骤非常详细,亲测可用。

在windows下编译libiconv需要安装cygwin环境,本质上应该是通过cygwin中的make命令完成整个编译工作。

安装cygwin时需要安装如下内容:
make
vim(可选)
(32-bit binaries):
mingw64-i686-gcc-core,
mingw64-i686-headers,
mingw64-i686-runtime
(64-bit binaries):
mingw64-x86_64-gcc-core,
mingw64-x86_64-headers,
mingw64-x86_64-runtime

完成上述cygwin安装后,详细安装libiconv提供的readme完成所有操作即可(这里会要求具备一些linux知识),编译后的输出文件在lib/.libs中。

下面步骤为准备编译libxml2:

  1. 将编译输出的文件复制到c:\opt\lib中
    注:此时编译出的lib文件名为:iconv.dll.lib,在libxml2的makefile中写为iconv.lib,因此需要将iconv.dll.lib改名为iconv.lib。
  2. 将iconv.h文件复制到c:\opt\include中

编译libxml2

libxml2可以使用ms的nmake完成编译,按照libxml2的win32/readme.txt描述的步骤操作即可。

cscript configure.js compiler=msvc prefix=c:\opt 
    include=c:\opt\include lib=c:\opt\lib debug=yes

nmake /f Makefile.msvc
nmake install

#执行上述命令后,在c:\opt\bin中就会出现libxml2.dll等文件,如果没有执行install,则在win32\bin.msvc中也可以找到。

总结

还是那句:网络上的信息未必准确(或者已经过了时效),还是多阅读官方的readme比较好,而且这个过程中还能学到很多知识,花费点时间完全是值得。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值