首页 > 其他分享 >UnrealEngine UnityBuild模式编译第三方代码问题

UnrealEngine UnityBuild模式编译第三方代码问题

时间:2024-03-31 12:45:56浏览次数:15  
标签:UnrealEngine 代码 UnityBuild 编译 cpp 第三方

UnrealEngine默认开了UnityBuild模式,把多个代码文件合并到一个较大的cpp文件进行编译。
这样是为了减少总编译任务数,尽量避免单个编译任务代码内容太少导致在切换任务上消耗太多时间,
尤其分布式编译情况下,任务切换成本更高。

UnityBuild参考日志

1>[22/102] Compile [x64] Module.Core.11.cpp
1>[26/102] Compile [x64] Module.Core.14.cpp

但是工程引入第三方代码时这种机制可能会带来负面效果,比如不同源代码针对同一个符号反复定义,
单个源文件各自编译不会有问题,单合并到一个cpp代码,一次编译就可能发生冲突,
为此需要在相关模块build.cs关闭UnityBuild

public class ModuleForThirdPartyCode: ModuleRules
{
    public ModuleForThirdPartyCode(ReadOnlyTargetRules Target) : base(Target)
    {

        bEnableUndefinedIdentifierWarnings = false;
        ShadowVariableWarningLevel = WarningLevel.Off;

        IWYUSupport = IWYUSupport.None;

        bUseUnity = false;

    }
}

标签:UnrealEngine,代码,UnityBuild,编译,cpp,第三方
From: https://www.cnblogs.com/rpg3d/p/18106595

相关文章

  • ubuntu编译与安装 OpenSSL-1.0.0
    apt-getpurgeopensslrm-rf/etc/ssl#删除配置文件编译与安装OpenSSLprefix是安装目录,openssldir是配置文件目录,另外建议安装两次,shared作用是生成动态连接库。(需要同时指定prefix与openssldir,否则可能会因为找不到文件而报错)wgetftp://ftp.openssl.org/source/op......
  • 24年3月使用VS22编译Telegram Desktop
    0.环境准备,我使用的VS版本是17.9.4,SDK版本是10.0.22621.0,最好不要用太老的版本 1.去下载Python,git,cmake这三个工具,然后在D盘根目录新建TBuild文件夹,里面再建Libraries和ThirdParty这两个文件夹下载地址:Python3.10:https://www.python.org/downloads/Git:https://git-scm.com/......
  • 计算机基础知识问答:编译原理篇
    编译原理一个C语言程序跑起来的过程是怎样的?预处理:在这一步,预处理器(如gcc-E)处理源文件中的预处理器指令,如#include、#define等。编译:编译器(如gcc-S)将预处理后的代码转换为汇编语言。这一步包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。汇......
  • 编译原理第五章——自下而上分析——算符优先分析(超全)
    编译原理第五章——自下而上分析——算符优先分析目录一、复习:语法分析的两种方式二、自下而上分析概述1.......
  • Item6:如果你不想使用编译器生成函数,就明确拒绝
    芝士wa2024.3.30Item6链接对于一个自定义空类,编译器会自动提供四个构造函数:默认构造函数默认析构函数拷贝构造函数拷贝赋值运算符(=)如果我不想有这些构造函数,应该怎么办呢?书里给出了答案,自己声明这些函数,并设置为private,然后不去实现它,当有人不小心地调用了它们,在li......
  • ts-jest无法编译执行ESM【解决步骤】
    很常见的错误就是SyntaxError:Unexpectedtoken'export',需要确保以下操作,才能解决问题tsconfig.json中compilerOptions.module与target要设置为ESNext,compilerOptions.target也要设置为ESNext,esModuleInterop设置为true,确定tsc将目标代码编译为ESM版本。其次m......
  • __cxa_pure_virtual报错(g++编译虚函数时)
    g++编译os的memory'时不知道为什么报错。尝试了很多方法(也可能搜错了)可以确定是纯虚函数出现了问题 复习一下虚函数的子类构造和析构的过程吧(一年过去了)允许派生类调用父类的同名函数而实现不同的功能,也叫动态联编。底层原理:虚函数表+虚函数表指针。每一个类都会对应一个......
  • 编译安装openGauss 3.0.0
    编译安装openGauss3.0.0环境检查1.1检查OS版本openGauss支持的操作系统:CentOS7.6(x86架构)openEuler-20.03-LTS(aarch64架构)openEuler-20.03-LTS(x86架构)Kylin-V10(aarch64架构)[root@og3~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)1.2修......
  • FFmpeg开发笔记(九)Linux交叉编译Android的x265库
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需x265的so库。1、安......
  • 简单介绍c语言程序的编译与链接
    程序运行的背后程序在运行时经历了四个步骤,分别是预编译(Prepressing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。预编译预编译也称预处理,源代码文件(.c)和相关的头文件(.h)等被预编译器cpp预编译成一个.i文件。编译编译过程就是将预处理后的文件进行一系列......