メインコンテンツへスキップ
  1. 記事/

C++プロジェクトがビルドできないときはパスをチェックする

UnrealEngine UE5.0 C++

BP プロジェクトでは問題なかったのに、C++プロジェクトだけがビルドできないときは、まずパスをチェックしよう

C++プロジェクトがビルドできない原因はだいたいパス #

no such file or directory などとエラーメッセージが表示される場合、大体がパスの問題です

典型的なのが、マルチバイト文字(要するに日本語)がパスに含まれている場合です
よくあるのが、プロジェクトを Windows のドキュメントフォルダ…OneDrive のドキュメントで管理している場合ですね あるいは Windows のユーザー名が日本語の場合です

C:\Users\ユーザー\Documents\Unreal Project\...

とか

C:\Users\User\OneDrive\ドキュメント\Unreal Project\...

などですね

後者は意識的に管理してないと、Windows が重要なフォルダーの保護と称して、ドキュメントフォルダを OneDrive に直結させようとしてきますので、プログラミング環境を作るという意識がない初心者にとっては面倒な落とし穴になります

なお、個人的には OneDrive に保存すること(主に PC 間の共有目的で)はあまり推奨してませんが…それはまたの機会で

UnrealEngine のビルドパイプラインでは文字列を Unicode 系(UTF-8、UTF-16)で扱うので、日本語版 Windows のコードである Shift-JIS で書かれたパスと合わなくなる、という理由があります

そんなことはともかく、UnrealEngine を扱う場合、プロジェクトのフォルダパスには日本語(全角文字)を使わない、とするのが一番覚えやすいです

日本語じゃないけど引っかかる文字 #

パスに全角文字がダメ、と言いましたが、実は半角文字でもダメな文字があります
それが、コマンドプロンプトで意味を持つ記号類です

具体的にはこれらです

& ( ) [ ] { } ^ = ; ! ' + , ` ~

それなりにフォルダ管理に気を配ってる場合、Windows のエクスプローラー上で、名前順に並べたときに一番上に来るように

!!!ImportantProject

とかやりがちなのですが、これがアウトです

UnrealEngine のビルドパイプラインはコマンドの形で実行されるので、これらが入ると変な解釈が発生し、コマンドが正常に実行できなくなります

もし、名前順に並べたときに一番上に来るようにしたい場合は、 #_ を使ってください

###_ImportantProject

こういうのであれば問題ないです

Related

ArUcoマーカーを使う(part1)
UnrealEngine UE5.0 AR
CustomStencilを使ったマスク作成
UnrealEngine UE5.0 PostProcess
LumenのCardCaptureを差し替える
UnrealEngine UE5.0 Lumen