VS2012 で log4cplus をダウンロードしてコンパイルしました。コンパイルは問題ありませんでした (デバッグとリリースの両方) コードで使用しようとしましたが、3 つのリンク エラーが発生しました。log4cplus プロジェクトの同じインクルードと、コンパイルしたライブラリを使用しています (3 つすべてを試しました... デバッグ リリースと log4cplusS.lib
私はまだこれらを取得します:
エラー LNK2019: 未解決の外部シンボル "__declspec(dllimport) クラス std::basic_ostringstream、クラス std::allocator > & __cdecl log4cplus::detail::get_macro_body_oss(void)" (_ imp ?get_macro_body_oss@detail@log4cplus@@YAAAV?$ basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ) 関数で参照される "int __cdecl Prepare(class std::basic_string,class std::allocator > &,class std::basic_string,class std::allocator > &,class std::basic_string,class 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: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string,class std::allocator > const &)" (_ imp ?getInstance@関数 "int __cdecl Prepare(class std ::basic_string,class std::allocator > &,class std::basic_string,class std::allocator > &,class std::basic_string,class 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;
私が追加した関数の1つで:
logger = Logger::getInstance(LOG4CPLUS_TEXT("MyDLL"));
LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("Prepare Starts"));