MacでC++プロジェクト新規作成できない時の対処法
プロジェクトがコンパイルできませんでした。Xcode で開きますか?
いざ、C++を少しだけいじろうとした時、あれ、、、コンパイルに失敗!?
プロジェクトを作成するだけでエラーが出てくるとは思いませんでした。
そんな訳ですが、解決法をWebから見つけましたので、日本語で軽く紹介。
開発環境
ーーーーーーーーーーーーー
UE4.27.2
Xcode Version 13.4
ーーーーーーーーーーーーー
ステップ1
今回扱っていくMaterial.hを探しましょう!
Engine/Source/Runtime/Engine/Classes/Materials/Material.h
にあります。
ステップ2
見つけたら開きましょう。おそらくXcodeが開くでしょう。
そしたら簡単、ファイルの1279行目と1293行目をコメントアウトするだけ!!!
↓1279行目
const TArray<FText>* LayerNames = &LayersExpression->GetLayerNames();
↓1293行目
LayerNames = &LayersParameter.Value.LayerNames;
コメントアウトの仕方は、行の最初に//を置くだけでございます。
例:
// LayerNames = &LayersParameter.Value.LayerNames;
以上です!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記
今回上記の処理で解決しましたが、その前に解決しなかったものの実行したものがありました。それがもしかしたら、コンパイル成功の引き金になっているかもしれないので、そちらも紹介させていただきます。
ステップ1’
いじっていくファイル、「MacToolChain.cs」を探しましょう!
/Users/Shared/Epic Games/UE_4.27/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/MacToolChain.cs
にあります。
ステップ2’
そのファイルを開き、検索機能を使って
Result += " -Wundef" + (CompileEnvironment.bUndefinedIdentifierWarningsAsErrors ? "" : " -Wno-error=undef"); }
と検索したら、}の下から、
Result += " -Wno-deprecated";
Result += " -Wno-deprecated-declarations";
Result += " -Wno-int-to-void-pointer-cast";
Result += " -Wno-non-literal-null-conversion";
Result += " -Wno-overloaded-virtual";
Result += " -Wno-pointer-to-int-cast";
Result += " -Wno-pragma-once-outside-header";
Result += " -Wno-unused-but-set-variable";
Result += " -Wno-unused-function";
Result += " -Wno-unused-result";
Result += " -Wno-unused-variable";
を追加‼︎
インデントに注意!
}
Result += ~~~~
といった形にしましょう。
参考(そのまんま)
Unreal won't compile my project on MacOS - #2 by douglaslassance - Ask - GameDev.tv