4

我的 dll 有 2 个入口点,我希望EasyLogging++与这两个入口一起使用..

我尝试使用此标头:

#pragma once
#ifndef EASYLOGGING_LOADER_H
#define EASYLOGGING_LOADER_H

#include "easylogging++.h"

INITIALIZE_EASYLOGGINGPP

#endif

但是包含此文件后,我会收到如下错误:

Error   LNK2005 "class std::shared_ptr<class el::base::Storage> el::base::elStorage" (?elStorage@base@el@@3V?$shared_ptr@VStorage@base@el@@@std@@A) already defined in gInput.obj

关于解决这个问题的任何想法?谢谢

附言。我正在使用Easylogging++ v9.96.4

4

1 回答 1

4

宏似乎INITIALIZE_EASYLOGGINGPP定义了一个变量。如果您将头文件包含在多个翻译单元中,那么您会破坏一个定义规则并且会出现错误。

简单的解决方案是在整个项目中只调用一次宏,方法是在单个源文件中执行。

于 2018-08-29T09:16:18.013 回答