libxml2

VC 2008 编译  libxml2-2.7.6

(2009-11-02 15:09:35)
转载
标签:

it

分类:开源库

1.编译libiconv-1.9.2
  下载:从http://ftp.gnu.org/pub/gnu/libiconv/下载最新版本
    解压后,打开README.woe32文件..此文件会告诉我们怎么用MSVC来编译源码.
   都是英文的,我就不翻译了..
   
    打开VisualStudio 2008 命令提示.不是CMD..这里边已经配置好了VC的运行环境..
    nmake -fMakefile.msvc NO_NLS=1 DLL=0 MFLAGS=-MT
    这里.DLL=0 表示搞成lib文件.
    这里MT表示使用多线程(静态链接)..我不喜欢用DLL..这样会有很多个DLL..弄不好..版本不对..程序跑不起来的
   
    nmake -fMakefile.msvc NO_NLS=1 DLL=0 MFLAGS=-MT installPREFIX=D:\SDK\libiconv-1.9.2
   
    install表示安装.PREFIX表示安装的目录..
   
   两次的nmake.就可以在D:\SDK\libiconv-1.9.2找到编译好的东西了..
   如果版本对的话..你也用VC2008 的话.应该不会出错..这么简单的东西..我第都失败了很多次..才找到这个方法..
 2.编译zlib-1.2.3
  下载:http://www.zlib.net/
 
  打开 projects\visualc6\zlib.dsw 经vc2008转换后.
  打开属性页..切换到LIB Release 把运行库改为:多线程(/MT)然后..批生成里边选择.LIB Release ..生成.
  在Win32_LIB_Release目录下..zlib.lib就是编译好的静态库.
  zlib.h和zconf.h  到D:\SDK\libiconv-1.9.2\include
  zlib.lib 到 D:\SDK\libiconv-1.9.2\lib
 
 目的是为了.下面编译libxml2-2.7.6的时候.都在这里找需要的库文件和头文件.
  因为libxml2-2.7.6 需要上面的两个东西.
 
 
 3.编译libxml2-2.7.6
 下载:从http://xmlsoft.org/downloads.html下载libxml2-git-snapshot.tar.gz最新的.
 解压后.打开 win32\Readme.txt.此文件教我们怎么用vc编译源码.
 
 我们还要打开:Makefile.msvc找到zdll.lib..然后把它改为zlib.lib.如果找不到就算了..其实就是上面我们编译好的
 zlib库文件.否则.会提示.LINK : fatal error LNK1181:无法打开输入文件“zdll.lib”
 
 同样,我也不翻译的..
  打开Visual Studio 2008命令提示.不是CMD..这里边已经配置好了VC的运行环境..
   cscript configure.jscompiler=msvc prefix=D:\SDK\libxml2-2.7.6include=D:\SDK\libiconv-1.9.2\include lib=D:\SDK\libiconv-1.9.2\libzlib=yes static=yes  cruntime=/MT
  
  
   nmake /f Makefile.msvc
  
   期间会出现:warning C4819:该文件包含不能在当前代码页(936)中表示的字符.
  
   最后 ,可能会出现
   ..\testapi.c(294) : errorC2001: 常量中有换行符
   ..\testapi.c(295) : error C2143: 语法错误 : 缺少“)”(在“return”的前面)
   这个不要紧..是测试代码..不过.改了.也好.打开testapi.c 找到294行.
  if (no == 2) return((xmlChar) '?);明显少了一个单引号:改为:if (no == 2) return((xmlChar) '?');
  重新 nmake /f Makefile.msvc 编译即可.
 
  最后
  nmake /f Makefile.msvc install.安装..即可在D:\SDK\libxml2-2.7.6  找到我们需要的头文件和库文件.
 
  注意:有些版本可能出现符号重定义.或者库冲突..就是/MT的原因...我们即要一致..还要找到 

# The linker and its options.
LD = link.exe
LDFLAGS = /nologo/VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)

在后面加上  -NODEFAULTLIB:LIBCMT

# The linker and its options.
LD = link.exe
LDFLAGS = /nologo/VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)-NODEFAULTLIB:LIBCMT

即这样 .保存,重新编译即可..

一般情况下..这样就可以编译通过..我也试过mingw编译...不过用mingw + codeblock开发...也有很多不方便的地方..
最后.还是先用VC吧..

这些开源库,,我们能熟练掌握..对写程序的效率来说还是很有帮助的..不过编译起来就不是那么方便了..


你可能感兴趣的:(libxml2)