首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >easylogging++如何避免多个init

easylogging++如何避免多个init
EN

Stack Overflow用户
提问于 2018-08-29 09:06:47
回答 1查看 905关注 0票数 4

我的dll有两个入口点,我希望在这两个条目中使用EasyLogging++

我试着使用这个标题:

代码语言:javascript
复制
#pragma once
#ifndef EASYLOGGING_LOADER_H
#define EASYLOGGING_LOADER_H

#include "easylogging++.h"

INITIALIZE_EASYLOGGINGPP

#endif

但是包含了这个文件,我得到了这样的错误:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 09:16:18

INITIALIZE_EASYLOGGINGPP似乎定义了一个变量。如果将头文件包含在多个https://en.wikipedia.org/wiki/Translation_unit_(programming)中,则会破坏一个定义规则并得到一个错误。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52073593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档