UE4 无法include “filename.generated.h”

在做plugin的时候要添加功能代码,添加的类无法编译通过。提示需要包含.generated.h 但是编译不通过又没有这个文件。

这就尴尬了。

下面提供最简单的配置,通过复制下面代码。编译通过后再自行扩建

 

代码结构如下:红框内是我需要新增的一个类 ImageLoaderComponent

 

 

ImageLoaderPrivatePCH.h

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.



// You should place include statements to your module's private header files here.  You only need to
// add includes for headers that are used in most of your module's source files though.
// 

#include "CoreUObject.h"
#include "Engine.h"
#include "ImageLoader.h"    //你自己模块的.h文件

内部公共头文件需要引用 Engine 和 Uobject , 还有你自己模块的模块头文件

 

 

ImageLoaderComponent.h

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.

#pragma once
#include "ImageLoaderComponent.generated.h"

/************************************************************************/
/*  你自己的类                                                           */
/************************************************************************/

UCLASS()
class UImageLoaderComponent : public UObject
{
    GENERATED_UCLASS_BODY()


};

新建的类需要引用 filename.generated.h ,因为可能涉及到引擎模块库的调用,所以需要用generated做热部署相关的工作(猜的)

以后头文件的引用列表不需要扩展,扩展的时候放到PCH文件里,譬如引用了其他库,或者其他引擎功能,在PCH中添加引用,并于Build.cs中添加关联

 

ImageLoaderComponent.cpp

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.


#include "ImageLoaderPrivatePCH.h"
#include "ImageLoaderComponent.h"

/************************************************************************/
/*  你自己的类实现(构造函数)                                              */
/************************************************************************/

UImageLoaderComponent::UImageLoaderComponent(const FObjectInitializer& ObjectInitializer)
    : Super(ObjectInitializer)
{
    
}

实现文件当然引用 PCH 以及这个类的声明文件。

使用过程中除了PCH引用了的库外,内部使用过程中用到的.h写在当前cpp这里,防止文件污染。

 

然后编译通过后就可以欢快地使用UE了。

转载于:https://www.cnblogs.com/Again/p/6365991.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值