make_shared<spdlog::sinks::daily_file_sink>
时间: 2024-03-29 17:39:44 浏览: 155
这不是一个问题,而是一行代码。这是使用 C++ 的智能指针 `std::make_shared` 创建一个每日日志文件的 sink 对象,使用了开源的日志库 spdlog 中的 `spdlog::sinks::daily_file_sink` 类。每日日志文件会自动按日期进行切割,确保日志文件不会无限增长。
相关问题
auto myLogger1 = std::make_shared<spdlog::sinks::daily_file_sink>("spdlog", "logs/log.txt", 0, 0);报错
这个错误可能是由于 `spdlog` 库没有被正确链接导致的。请确保你已经正确地将 `spdlog` 库链接到你的项目中。如果你使用的是 `CMake`,则需要在 `CMakeLists.txt` 文件中添加以下内容:
```cmake
find_package(spdlog REQUIRED)
target_link_libraries(YourProject PRIVATE spdlog::spdlog)
```
如果你手动编译 `spdlog` 库,则需要将其编译为静态库或动态库,并将其链接到你的项目中。请注意,在使用 `spdlog` 库之前,你需要包含 `spdlog` 的头文件:
```cpp
#include <spdlog/spdlog.h>
```
如果你已经正确链接了 `spdlog` 库,那么请检查你的日志文件路径是否正确。在这个例子中,日志文件应该被写入到 `logs/log.txt` 中。如果 `logs` 目录不存在,那么请先创建该目录。
包含了spdlog的库且调用没有问题,但是 auto myLogger1 = std::make_shared<spdlog::sinks::daily_file_sink>("spdlog", "logs/log.txt", 0, 0);这一行代码会报错NO matching function for call to "make_shared"
如果你确定已经正确包含了 `spdlog` 库的头文件和链接了该库,但是仍然出现了 "NO matching function for call to `make_shared`" 的错误,那么可能是因为你使用的 `spdlog` 版本不同导致的。
在不同版本的 `spdlog` 中,可能存在不同的构造函数重载或函数签名,如果你的代码中使用了不兼容的函数签名或构造函数重载,就会出现这个错误。
你可以检查一下你使用的 `spdlog` 版本是否与你的代码兼容,如果不兼容,可以尝试升级或降级 `spdlog` 版本,或者修改你的代码以适应新的 `spdlog` 版本。另外,还可以尝试使用其他可用的构造函数或函数签名来创建 `daily_file_sink` 对象。
如果你仍然无法解决这个问题,请提供更多的代码和错误信息,这样我才能更好地帮助你。
阅读全文