UE5.3编译UnrealCSharp错误及解决方案
Closed this issue · 3 comments
XeronOwO commented
问题1
报错:
[1/7] Compile [x64] Module.Generator.cpp
E:\Unreal Projects\Test\Plugins\UnrealCSharp\Source\Generator\Private\FBlueprintGenerator.cpp(8): fatal error C1083: 无法打开包括文件: “UMGEditor/Public/WidgetBlueprint.h”: No such file or directory
解决方案:
UnrealCSharp\Source\Generator\Private\FBlueprintGenerator.cpp: Line 8
#include "Engine/UserDefinedStruct.h"
- #include "UMGEditor/Public/WidgetBlueprint.h"
+ #include "WidgetBlueprint.h" // 这里应该用#if控制更好,不过我不会写x
#include "FGeneratorCore.h"
问题2:
报错:
[3/7] Compile [x64] Module.UnrealCSharp.cpp
...... (此处省略 10 warnings)
E:\Unreal Projects\Test\Plugins\UnrealCSharp\Source\UnrealCSharp\Private\Reflection\Container\FMapHelper.cpp(213): error C4855: “/std:c++20”中已弃用通过 "[=]" 来隐式捕获 "this"
E:\Unreal Projects\Test\Plugins\UnrealCSharp\Source\UnrealCSharp\Private\Reflection\Container\FSetHelper.cpp(106): error C4855: “/std:c++20”中已弃用通过 "[=]" 来隐式捕获 "this"
解决方案:
UnrealCSharp\Private\Reflection\Container\FMapHelper.cpp: Line 211
ElementPropertyDescriptor->Set(InValue, Data);
+ #if __cplusplus >= 202002L
+ ScriptMap->Rehash(ScriptMapLayout, [=, this](const void* Src)
+ #else
ScriptMap->Rehash(ScriptMapLayout, [=](const void* Src)
+ #endif
{
return ElementPropertyDescriptor->GetValueTypeHash(Src);
});
UnrealCSharp\Private\Reflection\Container\FSetHelper.cpp: Line 104
KeyPropertyDescriptor->Set(InKey, Data);
+ #if __cplusplus >= 202002L
+ ScriptSet->Rehash(ScriptSetLayout, [=, this](const void* Src)
+ #else
ScriptSet->Rehash(ScriptSetLayout, [=](const void* Src)
+ #endif
{
return KeyPropertyDescriptor->GetValueTypeHash(Src);
});
刚接触UE,比较菜,可能上述内容有问题。
crazytuzi commented
感谢反馈,昨天修改后在源码引擎编译通过了,今天再试下非源码引擎的情况
XeronOwO commented
顺便问下,Mono环境需要什么版本的?我看用到了C:/Program Files/Mono/bin/mono.exe。
我目前用的Mono官网的最新Stable版本,加载不了.net7.0的程序集(比如System.Private.CoreLib.dll),导致UE崩溃了。
crazytuzi commented
顺便问下,Mono环境需要什么版本的?我看用到了C:/Program Files/Mono/bin/mono.exe。 我目前用的Mono官网的最新Stable版本,加载不了.net7.0的程序集(比如System.Private.CoreLib.dll),导致UE崩溃了。
目前不需要Mono环境了,相关代码还没有删除,可以加QQ群,326576868,方便反馈问题