見出し画像

Xerces-C++をVisual Studio 2022で使ってみた

1. はじめに

 C++向けのXMLパーサーであるXerces-C++をVisual Studio 2022環境で使用したのでメモをする。

 想定する環境は、下記である。

・OS: Windows 10
・Visual Studio 2022 Community
・xerces-c-3.2.5
・Cmake(GUI版) 3.26.4

2. Xercesのダウンロード

 下記のURL(https://xerces.apache.org/xerces-c/download.cgi)からXercesのソースコードをダウンロードする。サイトに行くと、下記の場所にダウンロードのリンクがある。

ダウンロードのリンク

 執筆時点の最新版はVer3.2.5で、筆者はZip版をダウンロードし、テンポラリフォルダに展開した。

3. Cmakeでビルドする

 フォルダの中身を確認すると、libやdllが含まれておらず、そのまま使用できない。そこで、CmakeでVisual Studio用のソリューションファイルを作成する。

 ここでは、下記のフォルダにxercesを入れる前提で考える。

前提とするフォルダ:C:\Users\username\Documents\Dev\xerces-c-3.2.5

3.1 buildフォルダを作成する

 ビルド時のファイルを格納するbuildフォルダを作成する。

C:\Users\username\Documents\Dev\xerces-c-3.2.5\build

3.2 Cmakeを実行する

 公式サイトにあったCmakeのコマンドがイマイチうまくいかなかったため、Cmake(GUI版)からビルドする。下記にCmakeの設定を示す。

Cmakeの入力欄

・「Where is the source code」: C:\Users\username\Documents\Dev\xerces-c-3.2.5
・「Where to build the binaries」: C:\Users\username\Documents\Dev\xerces-c-3.2.5\build

 上記を入力後、Configureボタンを押す。

Configureボタンのありか

 今回は、64ビット版のVisual Studio 2022でビルドするため、下記のような設定とした。なお、別のバージョンで使用する場合は、セレクトボックスを変更すること。

Cmake-Configureの設定

 Finishを押下し、Configureの設定に従ってVisual Studioの環境を作成する。

Cmakeの完了画面

 「Generating done」と出ればCmake完了である。

4. Visual Studioでビルドする

 先ほどの手順が正しくできていれば、buildフォルダにxerces-c.slnが作成される。ちなみに、*.slnはVisual Studioのソリューションファイルである。

C:\Users\username\Documents\Dev\xerces-c-3.2.5\buildのフォルダ内

 「xerces-c.sln」を開き、ビルドをする。ここでは、リリースモードをRelease x64と設定し、ビルドした。

Visual Studioのビルド構成

 ビルドし、エラーとならなければOKである(少し時間がかかる)。

ビルドの結果

4. Visual Studioの設定をする

 次は、Visual StudioでXercesを読み込む設定を行う。今回は、C++コンソールアプリケーションのプロジェクトを作成し、読み込ませて使用する。

 プロジェクトを作成したら、デバッグ⇒デバッグのプロパティを選択する。

Visual Studioの設定

4.1 追加のインクルードディレクトリを設定

 下記の追加のインクルードディレクトリに、ヘッダーを設定する。
・C:\Users\username\Documents\Dev\xerces-c-3.2.5\build\src
・C:\Users\username\Documents\Dev\xerces-c-3.2.5\src

追加インクルードディレクトリ

4.2 追加の依存ファイルを設定する

 追加の依存ファイルにlibファイルを設定する。

C:\Users\username\Documents\Dev\xerces-c-3.2.5\build\src\Release\xerces-c_3.lib

追加依存ファイル

4.3 dllファイルを配置する

 Visual Studioの設定が終わったら、xerces-c_3_2.dllを実行ファイルと同階層に配置する。ここでは、プロジェクトのDebugかReleaseフォルダにxerces-c_3_2.dllを配置する。

 dllの配置を手作業でやるのが面倒な場合は、プロパティの構成プロパティ⇒ビルドイベント⇒ビルド後のイベント⇒コマンドラインにdllファイルをコピーする設定を記述しておいてもよい。これによって、コンパイルと同時にXercesからdllファイルをコピーできる。

5. 動作確認

 サンプルコードを使用して動作確認を行った。サンプルは公式のものを使用した(https://xerces.apache.org/xerces-c/program-3.html)。

#include <xercesc/util/PlatformUtils.hpp>
// Other include files, declarations, and non-Xerces-C++ initializations.

using namespace xercesc;

int main(int argc, char* argv[])
{
  try {
    XMLPlatformUtils::Initialize();
  }
  catch (const XMLException& toCatch) {
    // Do your failure processing here
    return 1;
  }

  // Do your actual work with Xerces-C++ here.

  XMLPlatformUtils::Terminate();

  // Other terminations and cleanup.
  return 0;
}

 結果、エラーは発生しなかったため、正しく設定できていることが分かった。

 以上で一連の設定が完了である。

6. 終わりに

 C++の標準ライブラリには、XMLを取り扱うライブラリが存在しない。また、自力でXMLパーサーを作るのは非常に手間がかかる。xercesなどのライブラリを使用すると、便利になる。

 今回は、Visual Studio 2022でXercisを使用する例を作成したので、興味ある人は活用してみてほしい。

いいなと思ったら応援しよう!