У меня есть собственный проект C ++ для VS2008, который я хочу скомпилировать как DLL.
Он ссылается только на одну внешнюю библиотеку (log4cplus.lib) и использует ее функции.
(естественно, также использует .h файлы log4cplus).
Когда я пытаюсь скомпилировать свой проект как статическую библиотеку, он успешен.
Когда я пытаюсь в качестве DLL, он не работает:
1>MessageWriter.obj : error LNK2019: unresolved external symbol "public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (?getInstance@Logger@log4cplus@@SA?AV12@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z) referenced in function "class log4cplus::Logger __cdecl Log(void)" (?Log@@YA?AVLogger@log4cplus@@XZ)
Есть еще 4 ошибки, связанные с функциями в log4cplus.lib.
Кажется, что-то действительно глупое .. пожалуйста, помогите мне:)
Спасибо!
Редактировать:
Я связан с файлом log4cplus.lib, и он находит это просто отлично.
Кроме того, log4cplus.lib работает на 100%, я использую его в другом проекте без проблем.
Мое первоначальное намерение состояло в том, чтобы скомпилировать мой проект как статическую библиотеку и использовать его в другой DLL, которую я пишу, но когда это происходит, я получаю те же ошибки компоновщика в этом другом проекте ...
Редактировать # 2:
Функции, которые вызывают ошибки компоновщика, являются статическими функциями .. это может быть частью проблемы?