моя 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
Похоже что макрос INITIALIZE_EASYLOGGINGPP
определяет переменную. Если вы включите заголовочный файл в несколько переводческие единицы тогда ты сломаешь одно определение правила и получит ошибку.
Простое решение — вызвать только макрос один раз во всем вашем проекте, делая это в одном исходном файле.
Других решений пока нет …