可能重复:
Are there general guidlines for solving undefined reference/unresolved symbol issues?
我想转换一个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&)'
有人可以解释如何以一种方式编码这种转换吗?
答案 0 :(得分:2)
有几种方法可以进行XSL转换,请参阅Process an XML document using an XSLT stylesheet micro howto:
我看到你打算使用Xalan。也许这实际上是正确的方式。请注意,需要配置此库。您可以获得有关在Xayno90 post上配置它的帮助。我在这里复制粘贴步骤:
我终于设法编译并安装了Xerces和Xalan Ubuntu 10.04,执行如下操作:
第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,因为目前还没有明确的指南以及其他操作系统的安装方法,因此必须对其进行解释以适应此安装。
此外:
path/c/samples/XalanTransform
最后,请阅读此SO帖子: