Ошибки ссылки log4cplus при использовании в VS2012

Я скачал и скомпилировал log4cplus в VS2012.
Компиляция прошла нормально (и отладка, и выпуск)
Я пытался использовать его в своем коде, но я получаю 3 ошибки ссылки, ничего из того, что я пробовал, не удаляло их.
Я использую то же самое из проекта log4cplus, и скомпилированные библиотеки (попробовал все 3 … отладочный релиз и log4cplusS.lib

Я все еще получаю это:

ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport) класс
std :: basic_ostringstream, класс std :: allocator> & __cdecl
log4cplus :: подробнее :: get_macro_body_oss (аннулируются) «(_чертенок?get_macro_body_oss @ подробно @ log4cplus @@ YAAAV? $ basic_ostringstream @ _WU? $ char_traits @ _W @ станд @@ V? $ Распределитель @ _W @ 2 @@ станд @@ XZ)
упоминается в функции «int __cdecl Prepare (класс
станд :: basic_string, класс
std :: allocator> &, класс std :: basic_string, класс std :: allocator> &,учебный класс
станд :: basic_string, класс
std :: allocator> &, int *, int *, int *) «(? Prepare @@ YAHAAV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ 00PAH11 @ Z)

ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport)
public: статический класс log4cplus :: Logger __cdecl
log4cplus :: Logger :: getInstance (класс std :: basic_string, класс std :: allocator> const &) «(_чертенок?деЫпзЬапсе @ Регистратор @ log4cplus @@ С.А.? AV12 @ ABV? $ basic_string @ _WU? $ char_traits @ _W @ станд @@ V? $ Распределитель @ _W @ 2 @@ станд @@@ Z)
упоминается в функции «int __cdecl Prepare (класс
станд :: basic_string, класс
std :: allocator> &, класс std :: basic_string, класс std :: allocator> &,учебный класс
станд :: basic_string, класс
std :: allocator> &, int *, int *, int *) «(? Prepare @@ YAHAAV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ 00PAH11 @ Z)

Что случилось?

Мой код прост, в моей dll cpp:

в верхней части CPP я добавил

static Logger logger;

в одной из функций, которые я добавил:

logger = Logger::getInstance(LOG4CPLUS_TEXT("MyDLL"));
LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("Prepare Starts"));

5

Решение

Вполне вероятно, что вы скомпилировали log4cplus, используя Release конфигурации. Вам нужно будет использовать Release_Unicode (аналогично для Debug конфигурации).

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]