【发布时间】:2026-01-27 23:50:01
【问题描述】:
谁能告诉我我做错了什么?
在控制台上运行它会产生以下错误:
#c++ -I /var/local/boost_1_46_1/log.cpp -o log -lboost-log
log.cpp:在函数“void init()”中: log.cpp:11:错误:“boost::logging”尚未声明 log.cpp:13: 错误: âboost::fltâ 没有被声明 log.cpp:13: 错误: 'logging' 没有被声明 log.cpp:13: 错误: 'logging' 没有被声明
我也尝试过从 stage 和 /usr/local/lib 目录显式链接库。
我的 log.cpp:
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/filters.hpp>
using namespace std;
void init()
{
boost::logging::core::get()->set_filter
(
boost::flt::attr< boost::logging::trivial::severity_level >("Severity") >= boost::logging::trivial::info
);
}
}
int main(int, char*[]) {
BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
BOOST_LOG_TRIVIAL(debug) << "A debug severity message";
BOOST_LOG_TRIVIAL(info) << "An informational severity message";
BOOST_LOG_TRIVIAL(warning) << "A warning severity message";
BOOST_LOG_TRIVIAL(error) << "An error severity message";
BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";
}
如果我省略 void init() 函数,这段代码将编译...
【问题讨论】: