Я не могу понять, почему этот примерный код не работает правильно. Мой компилятор говорит, что вызываемые функции не являются членами объявленного пространства имен. Это пример кода для журнала Boost, так почему он не работает? Что мне нужно сделать?Boost Log to File not working
Я уже определил BOOST_LOG_DYN_LINK
, и у меня есть все включенные заголовки, которые должны быть включены. Кроме того, boost был установлен через yum
из репозитория fedora, согласно yum, ускоряющая версия - 1.55.0
.
Пример: http://www.boost.org/doc/libs/1_55_0/libs/log/example/doc/tutorial_file.cpp
Ошибкиmain.cpp:33:5: error: ‘add_file_log’ is not a member of ‘logging’
logging::add_file_log(
^
main.cpp:34:10: error: ‘file_name’ is not a member of ‘keywords’
keywords::file_name = "sample_%N.log", /*< file name pattern >*/
^
main.cpp:35:10: error: ‘rotation_size’ is not a member of ‘keywords’
keywords::rotation_size = 10 * 1024 * 1024, /*< rotate files every 10 MiB... >*/
^
main.cpp:36:10: error: ‘time_based_rotation’ is not a member of ‘keywords’
keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0), /*< ...or at midnight >*/
^
main.cpp:36:49: error: ‘sinks::file’ has not been declared
keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0), /*< ...or at midnight >*/
Код
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sinks/text_file_backend.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/sources/record_ostream.hpp>
namespace logging = boost::log;
namespace src = boost::log::sources;
namespace sinks = boost::log::sinks;
namespace keywords = boost::log::keywords;
void init()
{
logging::add_file_log
(
keywords::file_name = "sample_%N.log",
keywords::rotation_size = 10 * 1024 * 1024,
keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),
keywords::format = "[%TimeStamp%]: %Message%"
);
logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);
}
Сделать Призыва
g++ -c -DBOOST_LOG_DYN_LINK -o main.cpp.o main.cpp
компоновщика флаги: -lboost_program_options -lboost_log -lboost_filesystem -lboost_system -lboost_thread -lpthread
Verbose Log: https://gist.github.com/HSchmale16/d4dd5656a47ce82c63b2
компилятор/сделать вызов? –
@TasosVogiatzoglou Добавлены флаги компоновщика и команда компилятора для файла с отказами. – HSchmale
странно. Можете ли вы показать отладочный/подробный вывод gcc? Может быть, включенные каталоги не включены? –