easylogging++ 如何避免多重初始化
easylogging++ how avoid multiple init
我的 dll 有 2 个入口点,我希望对两个入口使用 EasyLogging++
..
我试过用这个 header:
#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
有解决这个问题的想法吗?谢谢
ps。我正在使用 Easylogging++ v9.96.4
好像宏INITIALIZE_EASYLOGGINGPP
定义了一个变量。如果在多个translation units then you break the one definition rule中包含头文件,会报错。
简单的解决方案是在整个项目中只调用宏一次,方法是在单个源文件中执行。
我的 dll 有 2 个入口点,我希望对两个入口使用 EasyLogging++
..
我试过用这个 header:
#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
有解决这个问题的想法吗?谢谢
ps。我正在使用 Easylogging++ v9.96.4
好像宏INITIALIZE_EASYLOGGINGPP
定义了一个变量。如果在多个translation units then you break the one definition rule中包含头文件,会报错。
简单的解决方案是在整个项目中只调用宏一次,方法是在单个源文件中执行。