如何使用Visual Studio 2010构建Xalan-C?

Rhu*_*arb 2 xerces xalan xerces-c xml-parsing

我无法找到可能的证据.经过40个小时的自我疯狂之后,我不得不建立一个本地化项目,这个项目应该构建一个名称不佳的AllInOne项目(构建Xalan-C.lib,natch)所需的头文件.

这个库是软件的弊端,我迫切需要一个答案,因为它是另一个库中的依赖,我别无选择.

小智 6

我已经设法在Visual Studio 2010中构建Xalan-C版本1.11,与最新版本的Xerces-C(v3.1.1)兼容.我不知道是否可以使用早期版本,但这些是我的步骤随后为了使用1.11版本构建:

  • 必须将Xerces-C构建为动态库,以获取MsgCreator.exe所依赖的xerces-c_3_1D.dll文件.

  • 克隆github存储库以获取Xalan-C版本1.11的源代码.

  • 设置环境变量XERCESCROOT,并XALANCROOT在窗口(未在Visual Studio).

     XERCESCROOT    The Xerces-C/C++ installation directory
     XALANCROOT     The Xalan-C/C++ source directory
    
    Run Code Online (Sandbox Code Playgroud)
  • 在VS2010中打开Xalan-C解决方案并构建MsgCreator项目.

  • xerces-c_3_1D.dll从Xerces-C版本复制文件并将其放在Xalan-C构建文件夹中,该文件夹MsgCreator.exe位于相同的文件夹中.

现在可以生成构建"AllInOne"项目所需的"缺失"头文件(LocalMsgIndex.hpp和LocalMsgData.hpp).

  • 在cmd中与所提供的路径运行MsgCreator.exe XalanMsg_en_US.xlf它位于$(XALANCROOT)\src\xalanc\NLS\en_US什么方法建立区域信息时使用.

    MsgCreator.exe $(XALANCROOT)\src\xalanc\NLS\en_US\XalanMsg_en_US.xlf -TYPE=inmem
    
    Run Code Online (Sandbox Code Playgroud)

(我用过-TYPE=inmem,但检查哪种方法最适合您的解决方案)

  • 现在生成头文件并将其放在构建目录中(MsgCreator.exe所在的目录).复制或移动它们,$(XALANCROOT)\src现在应该可以找到它们.

  • 现在构建XalanMsgLib项目.

  • 在最终构建之前要做的最后一件事是处理文件afxres.h中的AllInOne.rc包含(位于$(XALANCROOT)\Projects\Win32\Res\AllInOne).Visual Studio Express版本不包含包含afxres.h标头的MFC库.我只是将其#include "windows.h"改为.

现在应该可以成功构建"AllInOne".