Boost Log record_ostream.hpp 不会编译

问题描述

我正在尝试为 Boost Log 编译示例代码。我收到编译器错误,并假设它与我的编译器标志有关,但我不确定。我的 main.cpp 文件中的代码(直接从教程示例中复制)如下所示:

/*
 * main.cpp
 *
 *  Created on: Apr 16,2021
 *      Author: ubuntu
 */

#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("sample.log");

    logging::core::get()->set_filter
    (
        logging::trivial::severity >= logging::trivial::info
    );
}

int main()
{
    init();
    logging::add_common_attributes();

    using namespace logging::trivial;
    src::severity_logger< severity_level > lg;

    BOOST_LOG_SEV(lg,trace) << "A trace severity message";
    BOOST_LOG_SEV(lg,debug) << "A debug severity message";
    BOOST_LOG_SEV(lg,info) << "An informational severity message";
    BOOST_LOG_SEV(lg,warning) << "A warning severity message";
    BOOST_LOG_SEV(lg,error) << "An error severity message";
    BOOST_LOG_SEV(lg,fatal) << "A fatal severity message";

    return 0;
}

我在 Ubuntu 20.04 上从 Eclipse 编译,以下是我的编译器命令: g++ -std=c++0x -I/usr/local/boost_1_76_0 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.o" -o "main.o" "../main.cpp"

编译器的输出如下所示(被截断为仅显示第一条错误消息):

16:00:18 **** Incremental Build of configuration Debug for project Simserve ****
make all 
Building file: ../main.cpp
Invoking: GCC C++ Compiler
g++ -std=c++0x -I/usr/local/boost_1_76_0 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.o" -o "main.o" "../main.cpp"
In file included from /usr/local/boost_1_76_0/boost/log/trivial.hpp:24,from ../main.cpp:9:
../main.cpp: In function "int main()":
/usr/local/boost_1_76_0/boost/log/sources/record_ostream.hpp:556:5:
**error: expected unqualified-id before "for"
  556 |     for (::boost::log::record rec_var = (logger).open_record((BOOST_PP_SEQ_ENUM(params_seq))); !!rec_var;)\
      |     ^~~**

谁能告诉我我做错了什么?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...