🦔

[UE5][C++] MessagePack導入方法と導入時エラー対処法

2023/08/20に公開

はじめに

シリアライズフォーマットとして有名なMessagePackを、
UE5で使いたくなったので導入してみました。
普通のC++コンソールアプリケーションプロジェクトとほぼ同様な形で追加すると、
エラーがでてうまくいかなかったので、解決方法を記載します。

普通のC++コンソールアプリケーションプロジェクトでMessagePackを使用する方法は、
以下の記事をご参照ください。
https://zenn.dev/hakuto_gamedev/articles/1b33330e46d0d7

MessagePackのライブラリ

MessagePackのソース・boostのソースともに、以下の記事に記載されているものと同様です。
https://zenn.dev/hakuto_gamedev/articles/1b33330e46d0d7

MessagePackの導入

基本的には、冒頭に紹介した記事と変わりません。
ただUE5で作成したプロジェクトでは、追加インクルードパスの設定箇所が微妙に異なります。
UE5プロジェクトでは、

構成プロパティ > VC++ディレクトリ > インクルードディレクトリ

上記の箇所に、MessagePackとboostのパスを2つ追加する必要があります。
※追加するパス自体は、冒頭に紹介した記事と変わりないです。

エラー解決方法

インクルードディレクトリを適切に設定すると、以下のようなエラーがいくつかでました。

~に置換するプリプロセッサマクロとして定義されていません。

このエラーは、Build.csに以下の1行を追加することで無効化できます。

Build.cs
//#if で使用していないプリプロセッサマクロ定義を使用した場合の警告(Error)を無効化
bEnableUndefinedIdentifierWarnings = false;

無効化すると、問題なくビルドが通りMessagePackを使用したコードを記載することができます。

最後に

たった1行で解決するエラーでしたが、解決するまでに結構時間取られました。
同じようなエラーで困っている人のお役に立てれば幸いです。

Discussion