Skip to main content
 首页 » 编程设计

xml-parsing之如何使用 Visual Studio 2010 构建 Xalan-C

2024年05月29日8zhenyulu

我找不到证据证明这是可能的。经过 40 个小时让自己陷入疯狂之后,我遇到了无法构建本地化项目的情况,该项目本应构建名称不佳的 AllInOne 项目(当然,该项目构建 Xalan-C.lib)所需的头文件。

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

请您参考如下方法:

我已经成功在 Visual Studio 2010 中构建了 Xalan-C 版本 1.11,与最新版本的 Xerces-C (v3.1.1) 兼容。我不知道早期版本是否可以,但是这些是我使用版本 1.11 进行构建时遵循的步骤:

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

  • 克隆 github repository获取Xalan-C版本1.11的源代码。

  • 设置环境变量XERCESCROOTXALANCROOT在 Windows 中(不在 Visual Studio 中)。

     XERCESCROOT    The Xerces-C/C++ installation directory 
     XALANCROOT     The Xalan-C/C++ source directory 
    
  • 在 VS2010 中打开 Xalan-C 解决方案并构建 MsgCreator项目。

  • 复制xerces-c_3_1D.dll来自 Xerces-C 构建的文件并将其放置在 Xalan-C 构建文件夹中,即 MsgCreator.exe 所在的文件夹。位于。

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

  • 使用提供的 XalanMsg_en_US.xlf 路径在 cmd 中运行 MsgCreator.exe位于$(XALANCROOT)\src\xalanc\NLS\en_US还有什么method在构建区域设置消息时使用。

    MsgCreator.exe $(XALANCROOT)\src\xalanc\NLS\en_US\XalanMsg_en_US.xlf -TYPE=inmem 
    

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

  • 头文件现已生成并位于构建目录(MsgCreator.exe 所在的位置)中。将它们复制或移动到 $(XALANCROOT)\src现在应该能够找到他们了。

  • 现在构建 XalanMsgLib项目。

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

现在应该可以成功构建“AllInOne”了。