DLL としてコンパイルしたい VS2008 ネイティブ C++ プロジェクトがあります。
1 つの外部ライブラリ (log4cplus.lib) のみを参照し、その関数を使用します。(もちろんlog4cplusの.hファイルも使用します)。
プロジェクトを静的ライブラリとしてコンパイルしようとすると、成功します。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)
log4cplus.lib 内の関数に関連して、このようなエラーがさらに 4 つあります。
それは本当にばかげているようです..私を助けてください:)
ありがとう!
編集 :
私は log4cplus.lib ファイルに対してリンクされていますが、それは問題ありません。また、log4cplus.lib は 100% 機能しており、別のプロジェクトで問題なく使用しています。私の当初の意図は、プロジェクトを静的ライブラリとしてコンパイルし、それを作成中の別の DLL で使用することでしたが、これを行うと、他のプロジェクトで同じリンカ エラーが発生します...
編集#2:
リンカ エラーの原因となる関数は静的関数です。これが問題の一部である可能性はありますか?