构建Xerces-C++开发环境

Environment:
Micorsoft Visual Studio 2010.

要想利用xerces-C++对xml进行操作,除了利用visual stuido建立工程文件外还需要将操作xml文件时将所依赖的Xerces-C++头文件信息和链接库对VS工程的相关属性进行设置.
为方便VS工程文件和所依赖的Xerces-C++依赖文件、库在开发时方便的移动位置,我们采取相对路径的方式进行设置。具体过程如下:

1.解压xerces-c_2_8_0-x86-windows-vc_8_0.zip.
解压后的Xerces-C++有自已的目录结构:
├─ bin
├─doc
│  └─html
│      ├─apiDocs
│      ├─graphics
│      └─resources
├─ include
│  └─xercesc
│      ├─dom
│      │  └─deprecated
│      ├─framework
│      │  └─psvi
│      ├─internal
│      ├─parsers
│      ├─sax
│      ├─sax2
│      ├─util
│      │  ├─Compilers
│      │  ├─MsgLoaders
│      │  │  ├─ICU
│      │  │  ├─InMemory
│      │  │  ├─MsgCatalog
│      │  │  ├─MsgFile
│      │  │  └─Win32
│      │  ├─NetAccessors
│      │  │  ├─libWWW
│      │  │  ├─MacOSURLAccess
│      │  │  ├─MacOSURLAccessCF
│      │  │  ├─Socket
│      │  │  └─WinSock
│      │  ├─Platforms
│      │  │  ├─AIX
│      │  │  ├─BeOS
│      │  │  ├─Cygwin
│      │  │  ├─FreeBSD
│      │  │  ├─HPUX
│      │  │  ├─Interix
│      │  │  ├─IRIX
│      │  │  ├─Linux
│      │  │  ├─MacOS
│      │  │  ├─NetBSD
│      │  │  ├─OpenServer
│      │  │  ├─OS2
│      │  │  ├─OS390
│      │  │  ├─OS400
│      │  │  ├─PTX
│      │  │  ├─QNX
│      │  │  ├─Solaris
│      │  │  ├─Tandem
│      │  │  ├─Tru64
│      │  │  ├─UnixWare
│      │  │  └─Win32
│      │  ├─regx
│      │  └─Transcoders
│      │      ├─Cygwin
│      │      ├─Iconv
│      │      ├─Iconv390
│      │      ├─Iconv400
│      │      ├─IconvFBSD
│      │      ├─IconvGNU
│      │      ├─ICU
│      │      ├─MacOSUnicodeConverte
│      │      ├─Uniconv390
│      │      └─Win32
│      └─validators
│          ├─common
│          ├─datatype
│          ├─DTD
│          └─schema
│              └─identity
├─ lib
├─samples
│  └─data
├─scripts
└─tests
    └─DOM
        └─TypeInfo
            └─data
2.当前项目与Xerces-C++的目录结构如下:
├─xerces-c_2_8_0-x86-windows-vc_8_0
│  ├─bin
│  ├─doc
│  │  └─html
│  │      ├─apiDocs
│  │      ├─graphics
│  │      └─resources
│  ├─ include
│  │  └─xercesc
│  │      ├─dom
│  │      │  └─deprecated
│  │      ├─framework
│  │      │  └─psvi
│  │      ├─internal
│  │      ├─parsers
│  │      ├─sax
│  │      ├─sax2
│  │      ├─util
│  │      │  ├─Compilers
│  │      │  ├─MsgLoaders
│  │      │  │  ├─ICU
│  │      │  │  ├─InMemory
│  │      │  │  ├─MsgCatalog
│  │      │  │  ├─MsgFile
│  │      │  │  └─Win32
│  │      │  ├─NetAccessors
│  │      │  │  ├─libWWW
│  │      │  │  ├─MacOSURLAccess
│  │      │  │  ├─MacOSURLAccessCF
│  │      │  │  ├─Socket
│  │      │  │  └─WinSock
│  │      │  ├─Platforms
│  │      │  │  ├─AIX
│  │      │  │  ├─BeOS
│  │      │  │  ├─Cygwin
│  │      │  │  ├─FreeBSD
│  │      │  │  ├─HPUX
│  │      │  │  ├─Interix
│  │      │  │  ├─IRIX
│  │      │  │  ├─Linux
│  │      │  │  ├─MacOS
│  │      │  │  ├─NetBSD
│  │      │  │  ├─OpenServer
│  │      │  │  ├─OS2
│  │      │  │  ├─OS390
│  │      │  │  ├─OS400
│  │      │  │  ├─PTX
│  │      │  │  ├─QNX
│  │      │  │  ├─Solaris
│  │      │  │  ├─Tandem
│  │      │  │  ├─Tru64
│  │      │  │  ├─UnixWare
│  │      │  │  └─Win32
│  │      │  ├─regx
│  │      │  └─Transcoders
│  │      │      ├─Cygwin
│  │      │      ├─Iconv
│  │      │      ├─Iconv390
│  │      │      ├─Iconv400
│  │      │      ├─IconvFBSD
│  │      │      ├─IconvGNU
│  │      │      ├─ICU
│  │      │      ├─MacOSUnicodeConverter
│  │      │      ├─Uniconv390
│  │      │      └─Win32
│  │      └─validators
│  │          ├─common
│  │          ├─datatype
│  │          ├─DTD
│  │          └─schema
│  │              └─identity
│  ├─lib
│  ├─samples
│  │  └─data
│  ├─scripts
│  └─tests
│      └─DOM
│          └─TypeInfo
│              └─data
└─XmlProcessTst
    ├─Debug
    ├─ipch
    │  └─xmlprocesstst-4a5cd93f
    └─XmlProcessTst
        └─Debug
        ├
XmlProcessTst.vcxproj

3.将Xerces-C++的头文件引入到工程的包含文件中去.
1)[Project]->Properties->C/C++/General->Additional Include Directories中添加Xercers-C++包含文件的相对路径:
..\..\xerces-c_2_8_0-x86-windows-vc_8_0\include

2)[Project]->Properties->C/C++/Linker->Additional Dependencies中添加Xercers-C++包含文件的lib:
 ..\..\xerces-c_2_8_0-x86-windows-vc_8_0\lib\xerces-c_2.lib

3)将..\..\xerces-c_2_8_0-x86-windows-vc_8_0\bin\xerces_c_2_8.dll拷贝到与新工程生成的可执行文件相同的目录中;
在开发阶段这个目录是..\Debug文件夹,如果不将dll文件拷贝过去,程序虽能编译通过但在运行时会提示找不到dll文件错误.




4.现在就可以编写代码进行测试了.

//main.cpp
#include <stdio.h>
#include <xercesc/util/PlatformUtils.hpp>
XERCES_CPP_NAMESPACE_USE

int main(int argc, char* argv[])
{
    XMLPlatformUtils::Initialize();

    printf("Hello");
    XMLPlatformUtils::Terminate();
    return 0;

}

//end
--------------------------------------------------------------------------------------------------
1>Build started 2013/10/14 17:53:46.
1>InitializeBuildStatus:
1>  Creating "Debug\XmlProcessTst.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  main.cpp
1>Manifest:
1>  Deleting file "Debug\XmlProcessTst.exe.embed.manifest".
1>LinkEmbedManifest:
1>  XmlProcessTst.vcxproj -> E:\Rocket_study\Xerces_C_V2_7_1\XmlProcessTst\Debug\XmlProcessTst.exe
1>FinalizeBuildStatus:
1>  Deleting file "Debug\XmlProcessTst.unsuccessfulbuild".
1>  Touching "Debug\XmlProcessTst.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:02.57
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值