EdelSoft
     Home     |     Softwares     |     Documents     |     Links     
Home > Documents > Xerces C++ > Introduction
注意: このページの情報は古くなっています。調べものの参考にはなる可能性がありますが、別途最新の情報を収集してください。
Abstract
Xerces C++ を使った XML プログラミングを始めるためには、ソースコードを手に入れ、自分の C++ 環境でビルドする必要があります。このページでは、ソースコードを入手してライブラリをビルドするまでを簡単に説明します。

ビルドを行う環境の例として、Borland C++Builder 6 および Borland C++Compiler 5.5.1 を取り上げています。
Installation
最新の Xerces C++ ソースコードは、常に http://www.apache.org/dist/xerces/c/ からダウンロードできます。利用するプラットフォームに応じて、xerces-c-x.x.x.zip または xerces-c-x.x.x.tar.gz をダウンロードしてください。ビルド済みのバイナリも同じページから入手できますが、通常はソースコードを自分でビルドして使うことをおすすめします。
アーカイブをダウンロードしたら、解凍ツールを使って適当な場所に解凍します。解凍すると、xerces-c-src_x_x_x というディレクトリ(以下、<xerces_home> と表記)が作られるはずです。サブディレクトリ <xerces_home>/src/ の中にソースファイルがあります。
ヒント: 何らかの事情で、最新ではない Xerces C++ のソースコードがほしくなる場合があるかもしれません。http://archive.apache.org/dist/xml/xerces-c/ から、このようなより古いリリースをダウンロードできます。
Build Xerces C++ (with Borland C++Builder 6)
Xerces C++ のサイトに、Build Instructions というページが用意されています。このページに、各プラットフォーム、各コンパイラごとのビルド方法が詳しく説明してあります(ただし、当然ながら説明は英語のみです)。
ここでは、Windows で Borland C++Builder 6 を使ってビルドする手順を、日本語で説明します(Build Instructions の内容に少し補足を加えました)。 MakeBuildDirs.bat を実行すると、作業用に <xerces_home>\Build\Win32\BCB6\ ディレクトリが作られます。ビルドを実行すると、.obj ファイルがこのディレクトリの obj\ サブディレクトリに作成され、最後に XercesLib.dll と XercesLib.lib がこのディレクトリ直下に作成されます。
XercesLib.dll が Xerces C++ のダイナミック リンク ライブラリ、XercesLib.lib がアプリケーションのリンク時に DLL の内容を参照するためのインポートライブラリです。C++Builder でアプリケーションを作成する場合には、プロジェクトに XercesLib.lib を参加させてコンパイルとリンクを行い、実行時には XercesLib.dll が見えるようにしておきます。
Build Xerces C++ (with Borland C++Compiler 5.5.1)
現在の Xerces C++ 配布物には、Borland 社から無料で配布されている Borland C++Compiler 用の makefile が含まれています。これを使う場合は、以下の手順でビルドを行うことができます。 Borland C++Builder の場合と同様に、作業用ディレクトリに DLL が作成されます。作成される DLL の名前は、XercesLib.mak の先頭付近にある PROJECT マクロの定義によって決まります。
PROJECT = $(TARGETPATH)\xerces-bor_$(XERCESVER).dll
make する時に XERCESVER マクロを定義しないと、これはあまり格好のよくないファイル名になります。C++Builder でビルドした場合と同様のファイル名にするならば、この行を単純に次のように書き換えればよいでしょう。
PROJECT = $(TARGETPATH)\XercesLib.dll
なお、.obj ファイル群のコンパイル後に DLL を作成する際、リンカが c0d32.obj や import32.lib が開けないというエラーを報告する場合があります。この場合は、リンカが必要なファイルを探し出せるよう、XercesLib.mak のいくつかのマクロ定義を適切に書き換えてやる必要があります。

まず、XercesLib.mak の先頭付近に、次のような BCBLIB マクロを新たに定義しておきます(この名前は何でもかまいません)。このマクロは、Borland C++Compiler がセットアップされたディレクトリ直下の LIB ディレクトリのパスを指すことになります。
!if !$d(BCB)
BCB = $(MAKEDIR)\..
!endif
BCBLIB = $(BCB)\LIB
続いて、XercesLib.mak の 380 行付近にある LIBPATH の定義に、BCBLIB を加えます。
LIBPATH = $(BCBLIB);..\..\..\..\..\src\xercesc\dom;..\..\..\..\..\src\xercesc\framework; ... (後略)
最後に、392 行付近から始まる行にも、次のように BCBLIB を付け足します。
ALLOBJ = $(BCBLIB)\c0d32.obj $(OBJFILES)
ALLRES = $(RESFILES)
ALLLIB = $(LIBFILES) $(LIBRARIES) $(BCBLIB)\import32.lib $(BCBLIB)\cw32mti.lib
変更を保存して再度 make -f XercesLib.mak を実行すると、ファイルが開けないというリンカエラーは出なくなり、DLL が作成されるはずです。
Build Your First Xerces Application
Xerces C++ のビルドができたら、次のコードをコンパイルして実行してみてください。コンパイル、リンク、実行がすべて問題なく通過できるようなら、Xerces C++ がうまく導入できています。
#include <xercesc/util/PlatformUtils.hpp>

int main()
{
    XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::Initialize();

    return 0;
}
もしうまくいかないようなら、以下の各点を確認してください。 ところで、上のコードの XERCES_CPP_NAMESPACE_QUALIFIER が気になるという方は? これは、Xerces C++ で定義されているマクロの一つで、C++ の名前空間と関係のあるものです。詳しくは Namespace のページを参照してください。
Resources
History
Home > Documents > Xerces C++ > Introduction