当前位置: 首页 > 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.xdnf.cn/news/1156591.html

相关文章:

  • 【软件测试】从软件测试到Bug评审:生命周期与管理技巧
  • VUE2 学习笔记2 数据绑定、数据代理、MVVM
  • 【数据结构】第一讲 —— 概论
  • 基于Arduino的智能寻迹小车设计
  • 剑指offer——链表:旋转数组的最小数字
  • 【OD机试】池化资源共享
  • 「Java案例」利用方法求反素数
  • Ubuntu挂载和取消挂载
  • LP-MSPM0G3507学习--07定时器之二定时节拍
  • ZYNQ平台深度剖析:EMMC/FLASH/SD卡性能测试与创新实践
  • 从磁记录到数据中心:磁盘原理与服务器架构的完整技术链路
  • 两个数据表的故事:第 1 部分
  • Spring之事务使用指南
  • Java行为型模式---解释器模式
  • Openlayers 面试题及答案180道(121-140)
  • Node.js Express keep-alive 超时时间设置
  • @import导入css样式、scss变量用法、static目录
  • Java中List<int[]>()和List<int[]>[]的区别
  • PAT 1049 Counting Ones
  • 医学图像超分辨率重建深度学习模型开发报告
  • 如何用immich将苹果手机中的照片备份到指定文件夹
  • Word for mac使用宏
  • UniApp 常用UI库
  • 机器视觉---深度图像存储格式
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十五课——正弦波图像的FPGA实现
  • 数据存储方案h5py
  • 【C++基础】面试高频考点解析:extern “C“ 的链接陷阱与真题实战
  • MySQL详解三
  • MyBatis Plus高效开发指南
  • 第459场周赛