当前位置: 首页 > news >正文

[BUG]关于UE5.6编译时出现“Microsoft.MakeFile.Targets(44,5): Error MSB3073”问题的解决

原项目时UE5.3的,我把它转换成UE5.6,提前删除了系统生成的中间文件,只保留编译必要的文件,使用UE5.6编译项目时,编译失败,Rider编辑器提示如下问题

11>Microsoft.MakeFile.Targets(44,5): Error MSB3073 : 命令“"G:\Unreal Engine\UE_5.6\Engine\Build\BatchFiles\Build.bat" AuraEditor Win64 Development -Project="XXXXXXXXXXX" -WaitMutex -FromMsBuild -architecture=x64”已退出,代码为 6

对应到出问题的代码:

<Target Name="Build" DependsOnTargets="PrepareForNMakeBuild;ResolveReferences;GetTargetPath;$(PreNMakeBuildTarget)" Returns="$(NMakeManagedOutput)"><VCMessage Code="MSB8005" Type="Warning" Arguments="NMakeBuildCommandLine" Condition="'$(NMakeBuildCommandLine)'==''"/><Exec Command="$(NMakeBuildCommandLine)" Condition="'$(NMakeUseOemCodePage)' == 'true' and '$(NMakeBuildCommandLine)'!=''"/><Exec Command="$(NMakeBuildCommandLine)" UseUtf8Encoding="Always" StdErrEncoding="UTF-8" StdOutEncoding="UTF-8" Condition="'$(NMakeUseOemCodePage)' != 'true' and '$(NMakeBuildCommandLine)'!=''"/></Target>

指向

<Exec Command="$(NMakeBuildCommandLine)" Condition="'$(NMakeUseOemCodePage)' == 'true' and '$(NMakeBuildCommandLine)'!=''"/>

我找了一个UE5.6编译成功的项目和当前项目,对比了一下Target.cs文件:

成功的Target.cs文件

// Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool;
using System.Collections.Generic;public class RPGGameTarget : TargetRules
{public RPGGameTarget(TargetInfo Target) : base(Target){Type = TargetType.Game;DefaultBuildSettings = BuildSettingsVersion.V5;IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;ExtraModuleNames.Add("RPGGame");}
}

失败的Target.cs文件

// Copyright Druid Mechanicsusing UnrealBuildTool;
using System.Collections.Generic;public class AuraTarget : TargetRules
{public AuraTarget(TargetInfo Target) : base(Target){Type = TargetType.Game;DefaultBuildSettings = BuildSettingsVersion.V2;ExtraModuleNames.AddRange( new string[] { "Aura" } );}
}

成功的Editor.Target.cs文件

// Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool;
using System.Collections.Generic;public class RPGGameEditorTarget : TargetRules
{public RPGGameEditorTarget( TargetInfo Target) : base(Target){Type = TargetType.Editor;DefaultBuildSettings = BuildSettingsVersion.V5;IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;ExtraModuleNames.Add("RPGGame");}
}

失败的Editor.Target.cs文件

// Copyright Druid Mechanicsusing UnrealBuildTool;
using System.Collections.Generic;public class AuraEditorTarget : TargetRules
{public AuraEditorTarget(TargetInfo Target) : base(Target){Type = TargetType.Editor;DefaultBuildSettings = BuildSettingsVersion.V2;ExtraModuleNames.AddRange( new string[] { "Aura" } );}
}

看起来新版本字段上有一些变化,所以将失败的cs文件根据新的字段改写一下:

更新后的Target.cs文件

// Copyright Druid Mechanicsusing UnrealBuildTool;
using System.Collections.Generic;public class AuraTarget : TargetRules
{public AuraTarget(TargetInfo Target) : base(Target){Type = TargetType.Game;DefaultBuildSettings = BuildSettingsVersion.V5;IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;ExtraModuleNames.Add("Aura");}
}

更新后的Editor.Target.cs文件

// Copyright Druid Mechanicsusing UnrealBuildTool;
using System.Collections.Generic;public class AuraEditorTarget : TargetRules
{public AuraEditorTarget(TargetInfo Target) : base(Target){Type = TargetType.Editor;DefaultBuildSettings = BuildSettingsVersion.V5;IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;ExtraModuleNames.Add("Aura");}
}

删除不必要的中间文件,再用uproject重新生成sln,再次编译

又提示了新的错误:提示只支持uint8

UENUM(BlueprintType)
enum class EEffectApplicationPolicy
{ApplyOnOverlap,ApplyOnEndOverlap,DoNotApply
};UENUM(BlueprintType)
enum class EEffectRemovalPolicy
{RemoveOnEndOverlap,DoNotRemove
};

修改后

UENUM(BlueprintType)
enum class EEffectApplicationPolicy: uint8
{ApplyOnOverlap,ApplyOnEndOverlap,DoNotApply
};UENUM(BlueprintType)
enum class EEffectRemovalPolicy: uint8
{RemoveOnEndOverlap,DoNotRemove
};

再次编译 又出现新的问题:

11>AuraAbilitySystemLibrary.cpp(465,8): Error C2027 : 使用了未定义类型“FOverlapResult”

参考如下文档:

Gameplay Ability System Course Project - Development Blog

FOverlapResult::FOverlapResult

添加一个头文件:

#include "Engine/OverlapResult.h"

编译成功

http://www.dtcms.com/a/289131.html

相关文章:

  • 30天打牢数模基础-SVM讲解
  • Facebook 开源多季节性时间序列数据预测工具:Prophet 快速入门 Quick Start
  • UE5多人MOBA+GAS 26、为角色添加每秒回血回蓝(番外:添加到UI上)
  • Go并发聊天室:从零构建实战
  • Mysql(事务)
  • 30个常用的Linux命令汇总和实战场景示例
  • 30天打牢数模基础-粒子群算法讲解
  • 详解Mysql索引合并
  • Jetpack - ViewModel、LiveData、DataBinding(数据绑定、双向数据绑定)
  • langchain调用本地ollama语言模型和嵌入模型
  • 梯度提升之原理
  • COGNEX康耐视IS5403-01智能相机加Navitar 18R00 LR1010WM52镜头
  • React 英语打地鼠游戏——一个寓教于乐的英语学习游戏
  • [Windows] Bili视频转图文笔记 v1.7.5
  • 网鼎杯2020青龙组notes复现
  • 7. 命令模式
  • Modbus Slave 使用教程:快速搭建模拟从站进行测试与开发
  • Ribbon轮询实现原理
  • Unity笔记——Unity 封装方法指南
  • day24——Java高级技术深度解析:单元测试、反射、注解与动态代理
  • [Python] -项目实战类3- 用Python制作一个记事本应用
  • CVE-2022-41128
  • Python数据处理库与语法总结
  • API获取及调用(以豆包为例实现图像分析)
  • FreeRTOS任务创建与删除
  • 掌握配置文件(三):运用Profile实现多环境配置隔离
  • 三级知识点汇总(详解)【c++】——3
  • 让不符合要求的任何电脑升级Windows11
  • 《通信原理》学习笔记——第五章
  • 开源安全大模型Foundation-Sec 8B的安全实践