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 ドキュメントを処理するマイクロ ハウツー を参照してください。

  • xsltproc
  • ザラン
  • サクソンB
  • サクソン6

Xalan を使用するつもりであることがわかりました。おそらく、これは実際には正しい方法です。このライブラリを構成する必要があることに注意してください。Xayno90 postで設定のヘルプを得ることができます。ここに手順をコピーして貼り付けます:

最終的に、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 である必要があります。現在、これに関する決定的なガイドはなく、このインストールに適合するためには他の OS のインストール方法を解釈する必要がありました。

また:

  • ステップ 0 では、Apache からプロジェクトをダウンロードします ( https://xalan.apache.org/old/xalan-c/download.htmlhttp://ftp.udc.es/apache/xalan/xalan-c/sources/ ) 。
  • コマンド ラインからコンパイルするか、プロパティ プロジェクト IDE でパスを構成してください。
  • 投稿ライブラリを現在のバージョンに更新します。
  • インストール後path/c/samples/XalanTransform、ニーズに近いものをコンパイルしてみてください

最後に、このSOの投稿を読んでください:

于 2013-01-11T10:12:52.627 に答える