1. 程式人生 > >boost 使用log日誌庫編譯相關問題

boost 使用log日誌庫編譯相關問題

boost 日誌示例中有一個錯誤:

下面這個檔案:

http://www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_fmt_stream.cpp

應該在開頭加一行:

#include <boost/log/support/date_time.hpp>否則會出下列錯錯誤:error C2027: 使用了未定義型別“boost::log::v2s_mt_nt5::expressions::aux::date_time_formatter_generator_traits<T,CharT>”d:\library\boost_1_54_0\boost\log\expressions\formatters\date_time.hpp94testlog
error C3861: “parse”: 找不到識別符號d:\library\boost_1_54_0\boost\log\expressions\formatters\date_time.hpp94testlog
原因是:    keywords::format =
    (
    expr::stream
    << expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S.%f")

    << ": <" << logging::trivial::severity
    << "> " << expr::smessage
    )

編譯時應注意:

使用動態庫連結 時應注意:

要定義 BOOST_LOG_DYN_LINK  或者 BOOST_ALL_DYN_LINK

使用到的庫:boost-log   boost-log-setup

參考:

否則就會出現:
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `xxxx::Init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/xxxx.cpp:54: undefined reference to `boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point::rotation_at_time_point(unsigned char, unsigned char, unsigned char)'
/xxxx.cpp:59: undefined reference to `boost::log::v2s_mt_posix::core::get()'
/xxxx.cpp:60: undefined reference to `boost::log::v2s_mt_posix::core::add_sink(boost::shared_ptr<boost::log::v2s_mt_posix::sinks::sink> const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::record::reset()':
/usr/include/boost/log/core/record.hpp:153: undefined reference to `boost::log::v2s_mt_posix::record_view::public_data::destroy(boost::log::v2s_mt_posix::record_view::public_data const*)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~basic_logger':
/usr/include/boost/log/sources/basic_logger.hpp:82: undefined reference to `boost::log::v2s_mt_posix::attribute_set::~attribute_set()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~once_block_sentry':
/usr/include/boost/log/utility/once_block.hpp:85: undefined reference to `boost::log::v2s_mt_posix::aux::once_block_sentry::rollback()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::aux::once_block_sentry::executed() const':
/usr/include/boost/log/utility/once_block.hpp:90: undefined reference to `boost::log::v2s_mt_posix::aux::once_block_sentry::enter_once_block() const'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::expressions::tag::message::get_name()':
/usr/include/boost/log/expressions/message.hpp:56: undefined reference to `boost::log::v2s_mt_posix::aux::default_attribute_names::message()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `current_process_id':
/usr/include/boost/log/attributes/current_process_id.hpp:49: undefined reference to `boost::log::v2s_mt_posix::aux::this_process::get_id()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::attributes::current_thread_id::impl::dispatch(boost::log::v2s_mt_posix::type_dispatcher&)':
/usr/include/boost/log/attributes/current_thread_id.hpp:69: undefined reference to `boost::log::v2s_mt_posix::aux::this_thread::get_id()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::attributes::current_thread_id::impl::detach_from_thread()':
/usr/include/boost/log/attributes/current_thread_id.hpp:79: undefined reference to `boost::log::v2s_mt_posix::aux::this_thread::get_id()'
/usr/include/boost/log/attributes/current_thread_id.hpp:79: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/current_thread_id.hpp:79: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~impl':
/usr/include/boost/log/attributes/attribute.hpp:71: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/attribute.hpp:71: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~impl':
/usr/include/boost/log/attributes/attribute_value.hpp:76: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/attribute_value.hpp:76: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `current_thread_id':
/usr/include/boost/log/attributes/current_thread_id.hpp:89: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::add_common_attributes()':
/usr/include/boost/log/utility/setup/common_attributes.hpp:53: undefined reference to `boost::log::v2s_mt_posix::core::get()'
/usr/include/boost/log/utility/setup/common_attributes.hpp:56: undefined reference to `boost::log::v2s_mt_posix::aux::default_attribute_names::line_id()'
/usr/include/boost/log/utility/setup/common_attributes.hpp:56: undefined reference to `boost::log::v2s_mt_posix::core::add_global_attribute(boost::log::v2s_mt_posix::attribute_name const&, boost::log::v2s_mt_posix::attribute const&)'
/usr/include/boost/log/utility/setup/common_attributes.hpp:59: undefined reference to `boost::log::v2s_mt_posix::aux::default_attribute_names::timestamp()'
/usr/include/boost/log/utility/setup/common_attributes.hpp:59: undefined reference to `boost::log::v2s_mt_posix::core::add_global_attribute(boost::log::v2s_mt_posix::attribute_name const&, boost::log::v2s_mt_posix::attribute const&)'
/usr/include/boost/log/utility/setup/common_attributes.hpp:62: undefined reference to `boost::log::v2s_mt_posix::aux::default_attribute_names::process_id()'
/usr/include/boost/log/utility/setup/common_attributes.hpp:62: undefined reference to `boost::log::v2s_mt_posix::core::add_global_attribute(boost::log::v2s_mt_posix::attribute_name const&, boost::log::v2s_mt_posix::attribute const&)'
/usr/include/boost/log/utility/setup/common_attributes.hpp:66: undefined reference to `boost::log::v2s_mt_posix::aux::default_attribute_names::thread_id()'
/usr/include/boost/log/utility/setup/common_attributes.hpp:66: undefined reference to `boost::log::v2s_mt_posix::core::add_global_attribute(boost::log::v2s_mt_posix::attribute_name const&, boost::log::v2s_mt_posix::attribute const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `constant':
/usr/include/boost/log/attributes/constant.hpp:76: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/constant.hpp:76: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `counter':
/usr/include/boost/log/attributes/counter.hpp:87: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:87: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:89: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:89: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:91: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:91: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `basic_clock':
/usr/include/boost/log/attributes/clock.hpp:71: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::sources::basic_composite_logger<char, boost::log::v2s_mt_posix::sources::logger, boost::log::v2s_mt_posix::sources::single_thread_model, boost::log::v2s_mt_posix::sources::features<void, void, void, void, void, void, void, void, void, void> >::open_record()':
/usr/include/boost/log/sources/basic_logger.hpp:566: undefined reference to `boost::log::v2s_mt_posix::core::get_logging_enabled() const'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~record_pump':
/usr/include/boost/log/sources/record_ostream.hpp:278: undefined reference to `boost::log::v2s_mt_posix::aux::unhandled_exception_count()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `basic_logger':
/usr/include/boost/log/sources/basic_logger.hpp:136: undefined reference to `boost::log::v2s_mt_posix::core::get()'
/usr/include/boost/log/sources/basic_logger.hpp:136: undefined reference to `boost::log::v2s_mt_posix::attribute_set::attribute_set()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~attribute_value_impl':
/usr/include/boost/log/attributes/attribute_value_impl.hpp:49: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/attribute_value_impl.hpp:49: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~impl':
/usr/include/boost/log/attributes/counter.hpp:62: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:62: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::shared_ptr<boost::log::v2s_mt_posix::sinks::synchronous_sink<boost::log::v2s_mt_posix::sinks::text_file_backend> > boost::log::v2s_mt_posix::aux::add_file_log<boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::open_mode, std::_Ios_Openmode const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, boost::parameter::aux::empty_arg_list> > > > > >(boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::open_mode, std::_Ios_Openmode const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, boost::parameter::aux::empty_arg_list> > > > > const&)':
/usr/include/boost/log/utility/setup/file.hpp:81: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::set_file_collector(boost::shared_ptr<boost::log::v2s_mt_posix::sinks::file::collector> const&)'
/usr/include/boost/log/utility/setup/file.hpp:82: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::scan_for_files(boost::log::v2s_mt_posix::sinks::file::scan_method, bool)'
/usr/include/boost/log/utility/setup/file.hpp:94: undefined reference to `boost::log::v2s_mt_posix::core::get()'
/usr/include/boost/log/utility/setup/file.hpp:94: undefined reference to `boost::log::v2s_mt_posix::core::add_sink(boost::shared_ptr<boost::log::v2s_mt_posix::sinks::sink> const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::detail::sp_if_not_array<boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char> >::type boost::make_shared<boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char> >()':
/usr/include/boost/smart_ptr/make_shared_object.hpp:146: undefined reference to `boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>::basic_text_ostream_backend()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::record boost::log::v2s_mt_posix::sources::basic_logger<char, boost::log::v2s_mt_posix::sources::logger, boost::log::v2s_mt_posix::sources::single_thread_model>::open_record_unlocked<boost::parameter::aux::empty_arg_list>(boost::parameter::aux::empty_arg_list const&)':
/usr/include/boost/log/sources/basic_logger.hpp:260: undefined reference to `boost::log::v2s_mt_posix::core::open_record(boost::log::v2s_mt_posix::attribute_set const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `record_pump':
/usr/include/boost/log/sources/record_ostream.hpp:259: undefined reference to `boost::log::v2s_mt_posix::aux::stream_provider<char>::allocate_compound(boost::log::v2s_mt_posix::record&)'
/usr/include/boost/log/sources/record_ostream.hpp:259: undefined reference to `boost::log::v2s_mt_posix::aux::unhandled_exception_count()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~auto_release':
/usr/include/boost/log/sources/record_ostream.hpp:243: undefined reference to `boost::log::v2s_mt_posix::aux::stream_provider<char>::release_compound(boost::log::v2s_mt_posix::aux::stream_provider<char>::stream_compound*)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::core::push_record(boost::rv<boost::log::v2s_mt_posix::record>&)':
/usr/include/boost/log/core/core.hpp:308: undefined reference to `boost::log::v2s_mt_posix::core::push_record_move(boost::log::v2s_mt_posix::record&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::text_file_backend::construct<boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::open_mode, std::_Ios_Openmode const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, boost::parameter::aux::empty_arg_list> > > > > >(boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::open_mode, std::_Ios_Openmode const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, boost::parameter::aux::empty_arg_list> > > > > const&)':
/usr/include/boost/log/sinks/text_file_backend.hpp:511: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long, boost::log::v2s_mt_posix::aux::light_function<bool ()()> const&, bool)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::basic_formatter<char> boost::log::v2s_mt_posix::parse_formatter<char>(char const*)':
/usr/include/boost/log/utility/setup/formatter_parser.hpp:207: undefined reference to `boost::log::v2s_mt_posix::basic_formatter<char> boost::log::v2s_mt_posix::parse_formatter<char>(char const*, char const*)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::detail::sp_ms_deleter<boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char> >::destroy()':
/usr/include/boost/smart_ptr/make_shared_object.hpp:57: undefined reference to `boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>::~basic_text_ostream_backend()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::detail::sp_ms_deleter<boost::log::v2s_mt_posix::sinks::text_file_backend>::destroy()':
/usr/include/boost/smart_ptr/make_shared_object.hpp:57: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::~text_file_backend()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::aux::light_function<bool ()()>::impl<boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point>::invoke_impl(boost::log::v2s_mt_posix::aux::light_function<bool ()()>::impl_base*)':
/usr/include/boost/log/detail/light_function_pp.hpp:77: undefined reference to `boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point::operator()() const'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::visitation_result boost::log::v2s_mt_posix::value_visitor_invoker<boost::mpl::vector2<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::log::v2s_mt_posix::fallback_to_none>::operator()<boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::output_fun, boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char> >&> >(boost::log::v2s_mt_posix::attribute_name const&, boost::log::v2s_mt_posix::attribute_value_set const&, boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::output_fun, boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char> >&>) const':
/usr/include/boost/log/attributes/value_visitation.hpp:182: undefined reference to `boost::log::v2s_mt_posix::attribute_value_set::find(boost::log::v2s_mt_posix::attribute_name) const'
/usr/include/boost/log/attributes/value_visitation.hpp:183: undefined reference to `boost::log::v2s_mt_posix::attribute_value_set::end() const'
/usr/include/boost/log/attributes/value_visitation.hpp:191: undefined reference to `boost::log::v2s_mt_posix::aux::attach_attribute_name_info(boost::exception&, boost::log::v2s_mt_posix::attribute_name const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::array<std::pair<boost::log::v2s_mt_posix::type_info_wrapper, void*>, 2ul> const& boost::log::v2s_mt_posix::aux::type_sequence_dispatcher<boost::mpl::vector2<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >::get_dispatching_map<boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::output_fun, boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char> >&> >()':
/usr/include/boost/log/utility/type_dispatch/static_type_dispatcher.hpp:160: undefined reference to `boost::log::v2s_mt_posix::aux::once_block_sentry::commit()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char> >& boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char> >::formatted_write<wchar_t>(wchar_t const*, long)':
/usr/include/boost/log/utility/formatting_ostream.hpp:560: undefined reference to `boost::log::v2s_mt_posix::aux::code_convert(wchar_t const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::locale const&)'
/usr/include/boost/log/utility/formatting_ostream.hpp:570: undefined reference to `boost::log::v2s_mt_posix::aux::code_convert(wchar_t const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::locale const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~impl':
/usr/include/boost/log/attributes/clock.hpp:59: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/clock.hpp:59: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~impl_generic':
/usr/include/boost/log/attributes/counter.hpp:112: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/counter.hpp:112: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~impl_dec':
/usr/include/boost/log/attributes/counter.hpp:162: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o:/usr/include/boost/log/attributes/counter.hpp:162: more undefined references to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)' follow
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::attributes::basic_clock<boost::log::v2s_mt_posix::attributes::local_time_traits>::impl::get_value()':
/usr/include/boost/log/attributes/clock.hpp:63: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/clock.hpp:63: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `boost::log::v2s_mt_posix::attribute_value boost::log::v2s_mt_posix::attributes::make_attribute_value<unsigned int>(unsigned int const&)':
/usr/include/boost/log/attributes/attribute_value_impl.hpp:116: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator new(unsigned long)'
/usr/include/boost/log/attributes/attribute_value_impl.hpp:116: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::mutex, boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char> >(boost::log::v2s_mt_posix::record_view const&, boost::mutex&, boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>&)':
/usr/include/boost/log/sinks/basic_sink_frontend.hpp:445: undefined reference to `boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>::consume(boost::log::v2s_mt_posix::record_view const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::mutex, boost::log::v2s_mt_posix::sinks::text_file_backend>(boost::log::v2s_mt_posix::record_view const&, boost::mutex&, boost::log::v2s_mt_posix::sinks::text_file_backend&)':
/usr/include/boost/log/sinks/basic_sink_frontend.hpp:445: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::consume(boost::log::v2s_mt_posix::record_view const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::log::v2s_mt_posix::aux::fake_mutex, boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char> >(boost::log::v2s_mt_posix::record_view const&, boost::log::v2s_mt_posix::aux::fake_mutex&, boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>&)':
/usr/include/boost/log/sinks/basic_sink_frontend.hpp:445: undefined reference to `boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>::consume(boost::log::v2s_mt_posix::record_view const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::basic_sink_frontend::flush_backend_impl<boost::mutex, boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char> >(boost::mutex&, boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>&, mpl_::bool_<true>)':
/usr/include/boost/log/sinks/basic_sink_frontend.hpp:233: undefined reference to `boost::log::v2s_mt_posix::sinks::basic_text_ostream_backend<char>::flush()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::log::v2s_mt_posix::aux::fake_mutex, boost::log::v2s_mt_posix::sinks::text_file_backend>(boost::log::v2s_mt_posix::record_view const&, boost::log::v2s_mt_posix::aux::fake_mutex&, boost::log::v2s_mt_posix::sinks::text_file_backend&)':
/usr/include/boost/log/sinks/basic_sink_frontend.hpp:445: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::consume(boost::log::v2s_mt_posix::record_view const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `void boost::log::v2s_mt_posix::sinks::basic_sink_frontend::flush_backend_impl<boost::mutex, boost::log::v2s_mt_posix::sinks::text_file_backend>(boost::mutex&, boost::log::v2s_mt_posix::sinks::text_file_backend&, mpl_::bool_<true>)':
/usr/include/boost/log/sinks/basic_sink_frontend.hpp:233: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::flush()'
CMakeFiles/xxxx.dir/xxxx.cpp.o: In function `~attribute_value_impl':
/usr/include/boost/log/attributes/attribute_value_impl.hpp:49: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/attribute_value_impl.hpp:49: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/attribute_value_impl.hpp:49: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'
/usr/include/boost/log/attributes/attribute_value_impl.hpp:49: undefined reference to `boost::log::v2s_mt_posix::attribute::impl::operator delete(void*, unsigned long)'

使用靜態庫連結 時應注意:

 libboost_log_setup.a libboost_log.a 這個順序.

如果你出現下面的情況則說明 你的依賴庫順序錯了. 正確的順序是 libboost_log_setup.a 應該在 libboost_log.a 之前.


/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libboost_log_setup.a(formatter_parser.o): In function `boost::log::v2s_mt_posix::(anonymous namespace)::formatter_grammar<wchar_t>::formatter_grammar()':
formatter_parser.cpp:(.text+0x6015): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard_wide>::graph'
formatter_parser.cpp:(.text+0x6541): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard_wide>::alnum'
formatter_parser.cpp:(.text+0x6548): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard_wide>::space'
formatter_parser.cpp:(.text+0x65c2): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard_wide>::alpha'
formatter_parser.cpp:(.text+0x683c): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard_wide>::print'
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libboost_log_setup.a(formatter_parser.o): In function `boost::log::v2s_mt_posix::(anonymous namespace)::formatter_grammar<char>::formatter_grammar()':
formatter_parser.cpp:(.text+0x7efa): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard>::graph'
formatter_parser.cpp:(.text+0x8307): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard>::alnum'
formatter_parser.cpp:(.text+0x830e): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard>::space'
formatter_parser.cpp:(.text+0x8388): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard>::alpha'
formatter_parser.cpp:(.text+0x85f4): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific<boost::spirit::char_encoding::standard>::print'

相關推薦

boost 使用log日誌編譯相關問題

boost 日誌示例中有一個錯誤:下面這個檔案:http://www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_fmt_stream.cpp應該在開頭加一行:#include <boost/log/s

boost log學習使用三(輸出日誌到檔案)

程式日誌帶來的問題? 上面幾個例子都是將日誌資訊輸出到控制檯上,實際應用中不常用,最常用的情況是我們將日誌資訊輸出到文字檔案中,方便我們以後檢視,同時程式不執行時日誌資訊也不會丟掉。輸出到檔案中後,又帶來一些問題。假如程式一直執行,日誌資訊就要無限的記錄下去嗎

boost log學習二(日誌過濾)

為什麼要日誌分級,日誌過濾? 在程式中,經常將日誌分級,比如以下boost log常用的分級,當然我們可以根據自己需要新增或刪除一些日誌等級,後面的文章會講到。日誌分級的好處有很多,比如使日誌讀起來更加清晰,程式出錯時,我們就可以首先檢視error等級以上的日

live555工程使用boost編譯出錯問題說明

boost live 555 場景說明 live555調用boost1.58庫的時候,出現如下的編譯錯誤:“BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT”: 宏重定義 參見“BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT”的前一個定義error

mysql數據通過bin-log日誌恢復數據

恢復 mysql 數據 binlog日誌用於記錄所有更新數據,當我們的數據庫出現故障時,我們可以利用binlog日誌來挽回。 如果mysql數據庫出現問題需要重新創建binlog二進制文件。 # 關閉當前的binlog日誌並創建一個新日誌文件,編號加1。 flush logs # 查看日誌,查出

[譯]如何禁止Requestslog日誌資訊呢?

原文來源: https://stackoverflow.com/questions/11029717/how-do-i-disable-log-messages-from-the-requests-library 問: 預設情況下,python的requests的庫裡面會有下面的日誌: Starting

Boost 1.59.0 編譯支援Python3的連結,生成vc120或vc140

Boost 1.59.0 編譯支援Python3的連結庫,生成vc120或vc140 官方編譯的Boost中只帶了Python2的連結庫,Python3的連結庫需要自己特別編譯,官方編譯版下載地址:http://sourceforge.net/projects/boost/files/boo

boost.log編譯到使用

最近新開專案,要用到log,雖然現在的log庫不少。但是要為C++專案增加庫還是首選boost。 首先從boost.org上下載最新的boost,編譯: bjam --with-log link=shared runtime-link=shared 單編log庫,編譯為動態庫,本來r

boost log學習一

對日誌的思考 為什麼需要日誌? 如今的應用程式都非常大,程式碼變得難以測試及除錯。而且更多的時候,這些程式執行在遠離開發人員的遠處,使得開發人員幾乎沒有機會監視程式的執行情況,並且一旦發生錯誤,很難找出錯誤的原因。此外,如果應用程式行為嚴重依非同步事件,

Ceph Log日誌相關程式碼走讀

以ceph-10.2.9版本,ceph-mds程序為例 建立CephContext類物件 如圖一所示,ceph_mds.cc中main函式,首先呼叫了函式global_init, 在global_init中,建立了一個CephContext類物件cct,並將cct賦給全域性變

linux環境下給BOOST編譯靜態加上-fPIC選項

在linux環境下,使用靜態方式編譯boost時,bjam沒有新增-fPIC, 解決辦法如下:  編輯tools/build/v2/tools/gcc.jam檔案,將第391行的 if( $link ) = shared 註釋掉,如下圖:

boost log使用 十二 架構研究和主要使用總結

架構下面是boost log庫的架構圖:簡單使用 下面總結一下和這個架構相關的知識:如何獲得Logging core#include <boost/log/core.hpp> ... boost::shared_ptr<logging::core> c

Boost::iostreams 編譯和壓縮資料流

摘要 好記憶不如爛筆頭,很多時候當時明明弄得很透徹的東西,很可能過段時間就全部的忘記了。 內容 1. iostreams庫編譯和簡介2. boost流3. boost 資料流壓縮 1. ios

boost編譯

01 完全編譯windows版本boost68, vs2015/vs2017 bootstrap.bat bjam --help bjam install --toolset=msvc-14.0 --prefix="D:/install/boost/boo

boost log使用六

這次演示如何在一個程式中使用兩個sink. 這兩個sink有不同的filter,生成兩個日誌檔案,採用不同的日誌格式。完整程式碼如下:#include <fstream> #include <boost/shared_ptr.hpp> #include

boost::log,示例程式碼

測試環境: [1]boost 1.57 [2]VS2013Update3 主要來源 [1]boost官網,做了些微小的改動。 最簡單的示例 // TestBoostLog.cpp : Defines the entry point for the console app

boost log使用一

pan 需要 tail 文件 ios key logs ger 結果 我的英文博客參考:http://csfreebird.blogspot.com/2013/12/use-boost-log-step1.html 我過去習慣使用cppcms提供的日誌庫,簡單好用。從1.

boost log使用四

現在,將boost log應用到一個已經存在的C++程式中用來替代CppCMS log。我用它完成一些任務,單個日誌檔案尺寸小於10M,磁碟剩餘空間最小要保持3G。要達到這個目的,有些事情需要注意:1. 包含正確的標頭檔案:#include <boost/log/cor

Boost編譯詳解

3.bjam 命令說明 Boost.Build V2 (Milestone 12) Boost.Jam 03.1.16 Project-specific help:   Project has jamfile at Jamroot Usage:   bjam [options] [properties] [

Boost log

本文首先介紹了boost.log的幾個重要的概念,然後分析其框架結構,最後詳細解析了一段示例程式碼,並總結了將boost.log應用到自己的程式中時的步驟。 1. 幾個概念 日誌記錄:一個獨立的訊息包,這個訊息包還不是實際寫到日誌裡的訊息,它只是一個候選的訊息。 屬性:日