一 spdlog簡介
spdlog(https://github.com/gabime/spdlog)是一個快速的僅使用頭文件或者編譯的C++日誌庫。
二 使用要求
1 編譯器
編譯器需要支持C++11及以上。
2 平台
Linux, FreeBSD, OpenBSD, Solaris, AIX
Windows (msvc 2013+, cygwin)
macOS (clang 3.5+)
Android
三 使用方式
1 頭文件方式
(1)直接使用頭文件報錯
官方的簡介裏只需要複製“include”文件夾到項目中,然後引用對應的頭文件即可(Copy the include folder to your build tree),然而在實際中,比如VS中這種方式並不能直接使用。
例如,將“include"文件夾放入項目目錄,如下圖:
在VS中引用頭文件,會報錯,如下圖:
打開“spdlog.h”文件,發現VS提示找不到<spdlog/common.h>等文件,如下圖:
(2)錯誤原因分析
注意到“spdlog.h”文件中包含的<spdlog/common.h>,其應該位於"spdlog.h"所在目錄裏的spdlog目錄下,而實際上“spdlog.h"本身就在spdlog目錄下,因此包含的位置在spdlog目錄下的spdlog目錄下,也就是spdlog/spdlog目錄,實際上此目錄並不存在,因此無法找到所引用的文件。
(3)解決方案
a:將include目錄下的spdlog文件夾放入VS中VC的include目錄中,如下圖:
同時修改include指令為:
#include "spdlog/spdlog.h"
即可正常使用。
b:在VS項目中設置附加包含目錄,將include文件夾添加到附加包含目錄中,如下圖:
同時修改include指令為:
#include "spdlog/spdlog.h"
即可正常使用。