0

可能重复:
是否有解决未定义参考/未解决符号问题的通用指南?

我想转换一个 xml 以插入 sql 语句。我已经准备好 xml 和 xslt 文件,并且我知道转换运行正常(用 Oxygen 测试)。

现在,我用 c++ 编码这个转换失败了。

我试图包括这个库:

#include <libxml2/libxml/xmlversion.h>
#include <libxml2/libxml/parser.h>
#include <libxml2/libxml/valid.h>
#include <libxml2/libxml/xmlschemastypes.h>
#include <libxml2/libxml/xmlschemas.h>
#include <libxml2/libxml/xmlmemory.h>
#include <libxml2/libxml/debugXML.h>
#include <libxml2/libxml/HTMLtree.h>
#include <libxml2/libxml/xmlIO.h>
#include <libxml2/libxml/DOCBparser.h>
#include <libxml2/libxml/xinclude.h>
#include <libxml2/libxml/catalog.h>
#include <xalanc/Include/PlatformDefinitions.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xalanc/XalanTransformer/XalanTransformer.hpp>

但是编译器在代码中显示了很多错误,例如:

/home/kimpa2007/xml/src/main.cc:108: undefined reference to `xercesc_2_8::XMLUni::fgXercescDefaultLocale'

/home/kimpa2007/xml/src/main.cc:109: undefined reference to `xalanc_1_10::XalanTransformer::initialize(xercesc_2_8::MemoryManager&)'

有人可以解释如何以一种简单的方式对这种转换进行编码?

4

1 回答 1

2

它们是进行 XSL 转换的几种方法,请参阅使用 XSLT 样式表处理 XML 文档 micro howto

  • xsltproc
  • 夏兰
  • 撒克逊B
  • 撒克逊6

我看到您打算使用 Xalan。也许这实际上是正确的方法。请注意,需要配置此库。您可以在Xayno90 帖子上获得有关配置它的帮助。我在这里复制粘贴步骤:

我终于设法为 Ubuntu 10.04 一起编译和安装 Xerces 和 Xalan,执行以下操作:

第1步

sudo apt-get source libxerces-c28
sudo apt-get source libxalan110

第2步。

add "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" to /etc/ld.so.conf

步骤 3。

you may need to change owner of source packages from root to normal user

步骤 4. 构建 Xerces

export XERCESCROOT=/home/user/xerces-c2-2.8.0+deb1
cd $XERCESCROOT
cd src/xercesc
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -rpthread -b64 -P /usr/local
make
sudo XERCESCROOT=$XERCESCROOT make install

步骤 5. 构建 Xalan

export XERCESCROOT=/usr/local
cd $XERCESCROOT
/usr/local$ cd ~
export XERCESCROOT=/home/user/xerces-c2-2.8.0+deb1
cd $XERCESCROOT
cd ~
export XALANCROOT=/home/user/xalan-1.10/c
cd $XALANCROOT
./runConfigure -p linux -c gcc -x g++ -b64 -P /usr/local
make
sudo XALANCROOT=$XALANCROOT make install

步骤 6。

检查 /usr/local/lib 和 /usr/local/include 的目录以确认 Xerces 和 Xalan 都已安装

需要成为这些 XML 库和包的 Ubuntu 特定安装的 wiki,因为目前没有明确的指南,而且必须解释其他操作系统的安装方法以适应此安装。

还:

最后,阅读这个 SO 帖子:

于 2013-01-11T10:12:52.627 回答