背景
在我们相当大的C++系统中,我们依赖于几个Xaland和XeRCE版本。多年来,这种情况一直在积累,但由于几个原因,这种情况并不理想。
现在我们正在从Solaris迁移到Linux,我们认为将第三方依赖性整合到最小是有意义的。
我们已经确定我们仍然需要Xerces 2.8和Xerces 3.x.以及Xalan 1.x
目标平台是RHEL6。
问题
从RHEL repo我们可以得到Xerces 3.0和Xalan 1.10(根据xerces3.0构建)
我们已经在/usr/local下安装了Xerces 2.8。。。
我们不知道Xalan是如何与Xerces(link-wise)一起工作的。即:
我们是否需要两个Xalan库,一个链接到3.x,一个链接到2.8?
我们能不能有一个Xalan版本,比如说1.11,它(通过某种魔力)可以同时使用xerces的两个版本?
我们不可能是唯一有这个问题的人,或者我们只是白痴?(这将是最好的方案。。。:))
最佳答案
从我刚刚在xerces.apache.org上读到的内容来看,xerces 2.X和xerces 3.X有不同的API,因此您需要与其中一个链接。
从xalan.apache.org上可以看到:
“XalAN-C/C++ 1.11库需要XELSCE-C/C++XML解析器3或更新版本3.1.1是首选的”,而XLAN 1.10需要XECES2.7.0(可能会使用2.8)。
因此,是的,您将需要两个不同版本的Xalan库,除非您可以将依赖关系解析为仅限Xalan 1.11.0,在这种情况下,您只能安装一个Xalan和一个Xerces。
关于c++ - xalan和xerces的多个版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21435867/