问题描述
我正在尝试为 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 (将#修改为@)