⭐ Unreal Engine/UE Debugging Log

[UE] Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않음

Designerd 2024. 9. 20. 22:38

Build.cs에 PublicDependencyModuleNames.AddRange에 추가해도 컴파일 되지 않는 문제 해결

 

 

목차

     

     


     

     

     

    Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않음


     

     

    문제 상황

     

    Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않는 문제가 발생했다. 

     

     

    먼저, 아래와 같이 QuickAssetAction 클래스를 생성했다.

    QuickAssetAction 클래스는 "AssetActionUtility.h" 헤더를 필요로 하기 때문에 Build.cs에 추가해줘야 한다.

     

    QuickAssetAction.h

    #pragma once
    #include "CoreMinimal.h"
    #include "AssetActionUtility.h"
    
    /** 우클릭 AssetAction에 새로운 기능 추가하기
     *  - Asset 복제
     */
    UCLASS()
    class SWMANAGER_API UQuickAssetAction : public UAssetActionUtility
    {
    	GENERATED_BODY()
    
    public:
    	UFUNCTION(CallInEditor)
    	void DuplicateAssets(int32 NumOfDuplicates); // Asset 복제
    };


    QuickAssetAction.cpp

    #include "AssetActions/QuickAssetAction.h"
    
    void UQuickAssetAction::RemoveUnusedAssets() // 사용하지 않는 Asset 제거
    {
    }

     

     

    Build.cs에 "Blutility"를 추가했지만 아래와 같이 컴파일 문제가 발생했다. 

     

    Cannot open include file: "BlutilityMenuExtension.h": No such file or directory  이라는 문구를 띄운다.


     

     

    원인

     

    Blutility.Build.cs를 확인해보면 PrivateIncludePaths로 "Editor/Blutility/Private" 이 추가되어 있다.

     

    처음 Build.cs에 PublicDependencyModuleNames 추가한 "Blutility" 뿐만 아니라' PrivateIncludePath에 아래의 경로를 추가해야 된다.

    만약 추가하지 않으면 "Blutility"가 필요한 정보를 찾지 못해 컴파일 에러가 발생한다.

     

     


     

     

    해결 방안

     

    Build.cs의 PrivateIncluePaths에 위에서 찾은 경로를 넣어준다.