记录 UE5 完全重新构建 UE C++项目
创始人
2024-05-31 04:43:36
0

不知道搞了什么,C++项目的实时代码编译罢工了,搞了半天都修不好,只能又重建了

UE5 版本为 v5.1.1

删除以下文件夹

/Binaries
/Intermediate
/Saved

Binaries 文件夹是编译后的模块
Intermediate 文件夹里是中间层的C++代码,完全由ue5生成
Saved 是一些编辑器设定和日志

注意,以下的xxx为任意字符串

然后用 ue5 打开 xxx.uproject
打开后,提示我是否重建 xxx 模块,点确定,编译了几分钟。

提示编译失败,打开 /Saved/Logs/xxx.log ,里面是编译日志,观察到一句 IsRenderingThreadHealthy 代码无法找到链接符号。
以下是部分日志

  正在创建库 Y:\DrawFront2\Intermediate\Build\Win64\UnrealEditor\Development\DrawFront2\UnrealEditor-DrawFront2.lib 和对象 Y:\DrawFront2\Intermediate\Build\Win64\UnrealEditor\Development\DrawFront2\UnrealEditor-DrawFront2.exp
[15/20] Link UnrealEditor-DrawFront2.dll正在创建库 Y:\DrawFront2\Intermediate\Build\Win64\UnrealEditor\Development\DrawFront2\UnrealEditor-DrawFront2.suppressed.lib 和对象 Y:\DrawFront2\Intermediate\Build\Win64\UnrealEditor\Development\DrawFront2\UnrealEditor-DrawFront2.suppressed.exp
MyMsgPipeLib.cpp.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) bool __cdecl IsRenderingThreadHealthy(void)" (__imp_?IsRenderingThreadHealthy@@YA_NXZ),函数 "public: static class UTexture2D * __cdecl UMyMsgPipeLib::GetCurImage(class FString,int,int,bool &,int &,int &)" (?GetCurImage@UMyMsgPipeLib@@SAPEAVUTexture2D@@VFString@@HHAEA_NAEAH2@Z) 中引用了该符号
Y:\DrawFront2\Binaries\Win64\UnrealEditor-DrawFront2.dll : fatal error LNK1120: 1 个无法解析的外部命令
[16/20] Compile Module.RuntimeAudioImporter.cpp
[17/20] Link UnrealEditor-RuntimeAudioImporter.lib

屏蔽了所有 IsRenderingThreadHealthy 的代码。再次打开ue5进行编译。
这次编译成功了,但是又报了一个错误
游戏模块“xxx”无法被加载,可能存在的操作系统错误,模块可能未正确设置,或版本中包含的插件尚未开启。
在这里插入图片描述
搜索网络后,发现和想起来 我的C++项目链接了我其他的C++项目的dll作为依赖库,这些依赖库dll放在 /Binaries/Win64 里面
而它们在第一步被删掉了。
我把 我其他C++项目的 dll 再次复制到 /Binaries/Win64 里面

再次用 ue5 打开项目,终于行了,能打开了。
立刻用按钮 ue5菜单栏 -> 工具 -> 打开 Visual Studio ,打开C++ IDE
发现 xxx 项目没有找到。。。无法构建。。。此时VS项目不完整。

关闭 Visual Studio,然后点击 ue5菜单栏 -> 工具 -> 刷新 Visual Studio 项目,重建 VS 项目
再次用按钮 ue5菜单栏 -> 工具 -> 打开 Visual Studio ,打开 Visual Studio,这次VS项目终于完整了。

按下 Ctrl+Alt+F11 ,启动 实时代码编译,没有报错。

至此,UE C++ 项目完全重新构建完成。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...