1
jamfileの代わりに自分のcmakeファイルを使ってブーストの例rotating_file(ブースト1.63)を構築しました。プログラムはまた、次の行が含まブーストログ - グローバルロガー使用時の未定義参照
#include <boost/log/sources/global_logger_storage.hpp>
...
//before main
BOOST_LOG_GLOBAL_LOGGER(my_logger, src::logger)
...
//src::logger lg;
src::logger& lg = my_logger::get();
:ここ
#define BOOST_ALL_DYN_LINK
はcmakeのLIBSです:
target_link_libraries(test "libboost_log.so"
"libboost_log_setup.so"
"libboost_date_time.so"
"libboost_filesystem.so"
"libboost_system.so"
"libboost_thread.so")
このライン:
src::logger& lg = my_logger::get();
それから私は、次のような変形を追加しています生成:
global_logger_storage.hpp:154: error: undefined reference to `my_logger::construct_logger()'
どうしたのですか?
編集
私はこの方法で、シンクや他の属性を追加します。
logging::core::get()->add_sink(sink);
logging::core::get()->add_global_attribute("TimeStamp", attrs::local_clock());
logging::core::get()->add_global_attribute("RecordID", attrs::counter< unsigned int >());
ので、私はちょうど追加BOOST_LOG_GLOBAL_LOGGER_INITの終わり:
src::logger logger;
return logger;
それは動作します。
作品については、 – Irbis
をご覧ください。ドキュメント(http://www.boost.org/doc/libs/1_63_0/libs/log/doc/html/log/detailed/sources.html#log)に記載されています。 .detailed.sources.global_storage)には、ロガーの初期化を定義するいくつかのマクロがあります。編集で判断すると、 'BOOST_LOG_GLOBAL_LOGGER_DEFAULT'を使うことができます。 –