5

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"));
4

1 に答える 1

6

It is likely that you have compiled log4cplus using the Release configuration. You will need to use Release_Unicode (similarly for Debug configuration).

于 2013-09-16T16:56:31.933 に答える