#はじめに
現在、卒業研究でKinect V2とUE4を連携させるシステムを作成しています。その過程で発生したビルドエラーの解決方法についての日本語の記事を見かけなかったので、備忘録も兼ねて記事を書いてみます。
#エラーの内容
Kinect V2との連携システムを作るにあたって、KinectのライブラリをUE4のプロジェクトに追加する必要があります。
ライブラリの追加については問題なかったのですが、ビルドする時にエラーが発生しました。
内容は「TEXT」というマクロが多重定義されているとのこと。
おそらくKinectが使用しているWindowsのライブラリ(winnt.h / winioctl.h)とUE4のエンジンの中で「TEXT」というマクロが定義されているという状態かと思います。
#解決方法
bEnableUndefinedIdentifierWarnings = false;
このコードを<プロジェクト名>.Build.csの中に加えるだけです。
----- 追記 -----
上記の方法だと、全体に対して効果がありますが以下の方法を使うと一部のヘッダーのみに作用させることができます。
#include "AllowWindowsPlatformTypes.h"
//対象のヘッダーまたはそれを含むヘッダーをインクルード
#include "HideWindowsPlatformTypes.h"
コメント欄にて strv13570 様に教えていただきました!ありがとうございます!
こちらの方法で解決できない場合は以下の記事の方法をお試しください。
UE4のTEXTマクロ多重定義回避 @Kanashibari
#おわりに
こう書いてみるとたった1行のコードを書くだけですが、ここにたどり着くまで一週間悩んでましたw
英語のフォーラムも見ることの重要性を感じましたが、やはり日本語の検索でヒットした方が便利ですよね!
私自身、UnrealC++を触り始めたばかりなのでこの記事で間違っているところがあれば教えていただけると幸いです。