You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译Boost Logging教程示例代码遇未定义引用错误求助

Boost Log格式化配置引发的链接错误解决

问题详情

在编写Boost Log日志初始化代码时,遇到了链接错误。代码如下:

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
    );
}

编译时出现如下链接错误:

/local/include/boost/log/utility/setup/formatter_parser.hpp:207: undefined reference to `boost::log::v2s_mt_posix::basic_formatter<char> boost::log::v2s_mt_posix::parse_formatter<char>(char const*, char const*)'
collect2: error: ld returned 1 exit status

注释掉keywords::format = "[%TimeStamp%]: %Message%"这一行后,代码可正常构建。尝试添加#include <boost/log/support/date_time.hpp>头文件,并未解决问题。

原因与解决方法

这个错误的核心原因是链接阶段未包含Boost Log的格式化解析库。parse_formatter函数属于boost_log_setup库,而非核心的boost_log库,因此编译时需要同时链接相关依赖库:

GCC编译命令示例

g++ your_source.cpp -o your_program -lboost_log -lboost_log_setup -lpthread

CMake配置示例

find_package(Boost REQUIRED COMPONENTS log log_setup)
target_link_libraries(your_target PRIVATE Boost::log Boost::log_setup)

内容的提问来源于stack exchange,提问作者Mike M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:49:52