Я не могу понять, почему этот пример кода работает неправильно. Мой компилятор говорит, что вызываемые функции не являются членами объявленного пространства имен. Это пример кода для журнала Boost, так почему он не работает? Что мне нужно сделать?
Я уже определил BOOST_LOG_DYN_LINK
, и у меня есть все заголовки, которые нужно включить. Дополнительно был установлен boost через yum
из репозиториев Fedora, согласно yum, версия boost 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
Подробный журнал: https://gist.github.com/HSchmale16/d4dd5656a47ce82c63b2
yum install boost*
, а когда это не удалось, я запустил ту же команду, что и для переустановки. Сборка все равно не удалась. - person HSchmale   schedule 03.05.2015-std=c++11
- person HSchmale   schedule 03.05.2015