0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UE5のプラグイン内でのカスタムログ定義

Posted at

概要

プラグインの中でカスタムログカテゴリを定義してプロジェクト内で使用したときに未定義エラーとなったときの対処

やろうと思ったこと & 問題点

自作プラグインの中にカスタムログカテゴリを追加して使いたかったのですが
プロジェクト内で使おうとしたら未定義エラーになってしまいました

LogMhというカスタムログカテゴリを使おうとして下記のエラーが発生

0>Test.cpp.obj: Error  : LNK2001: 外部シンボル "struct FLogCategoryLogMh LogMh" (?LogMh@@3UFLogCategoryLogMh@@A) は未解決です

修正前の定義

LogMh.h

#pragma once

#include "CoreMinimal.h"

DECLARE_LOG_CATEGORY_EXTERN(LogMh, Log, All);

LogMh.cpp

#include "Mh/LogMh.h"

DEFINE_LOG_CATEGORY(LogMh);

原因

APIマクロが欠落していました
クラスなどではつけることは理解していましたが、ここでも必要とは…

修正後の定義

プラグインの名前がXXとして、XX_APIを頭に付ける必要がありました

LogMh.h

#pragma once

#include "CoreMinimal.h"

// ここの頭につける
XX_API DECLARE_LOG_CATEGORY_EXTERN(LogMh, Log, All);

LogMh.cpp

#include "Mh/LogMh.h"

DEFINE_LOG_CATEGORY(LogMh);

最後に

クラス定義などでは下記のように付けるのは当然だと思っていたのですが、
マクロでも必要とは盲点でした…

UCLASS()
class XX_API UFooBar : public UObject
{
    GENERATED_BODY()
};

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?