ZBLOG

/mnt/work4mhs/BeiMingDetect4Gbox/demodetect.cpp:136:29: error: ‘stdout_color_mt’ is not a member of ‘spdlog’ 136 | global_logger = spdlog::stdout_color_mt("console");

出现这个错误是因为你可能没有正确引入 spdlog 的头文件,或者你的 spdlog 版本较老,不支持 stdout_color_mt 方法。

确保你使用的是较新版本的 spdlog,并且已经正确包含了必要的头文件。下面是一些常见解决方案和检查点:

1. 检查头文件

确保在你的源代码中包括了以下头文件:

#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h> // 确保包含了这一行

2. 检查 spdlog 版本

确认你使用的 spdlog 是最新版本。可以通过以下命令检查已安装的包版本(假设使用 CMake 和 Conan):

conan search spdlog

如果需要更新,可以按照 spdlog 的 GitHub 页面 上的说明进行操作。

3. 使用其他日志初始化方法

如果你的项目不需要彩色输出,你也可以使用简单的控制台日志记录器,比如:

global_logger = spdlog::stdout_logger_mt("console");

或者,如果只需要无彩色输出,可以直接用:

global_logger = spdlog::stdout_logger("console");

完整示例代码修正

请确保你的完整示例代码类似于下面这样,以避免上述问题:

main.cpp

#include <iostream>
#include <memory>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h> // 包含颜色输出相关sink

void initialize_logging(std::shared_ptr<spdlog::logger>& global_logger) {
    spdlog::set_pattern("[%Y-%m-%d %H:%M:%S] [%^%l%$] %v"); // 设置日志格式
    global_logger = spdlog::stdout_color_mt("console"); // 创建带颜色的控制台logger
}

int main() {
    std::shared_ptr<spdlog::logger> global_logger;

    initialize_logging(global_logger); // 初始化全局logger
    
    // ... your other code, such as creating BMDetectCls instances ...

    return 0;
}

总结

  • 确保你有适当的头文件导入。
  • 确认 spdlog 库是最新且功能完整。
  • 可以尝试替换不同类型的 logger 来测试是否能够成功编译和运行。

这样做之后,再次尝试编译你的程序,应该能顺利通过。如果仍然遇到问题,请提供更多信息以便进一步帮助。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19815

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?