vs debug 模式生成的exe 另一台电脑_C++利用spdlog生成日志
環境:Win10-x64+VS2015
spdlog是一個快速的C++日志庫,能夠兼容C++11,具備快速、無需依賴第三方庫、支持多線程、多平臺的優良特性!
下載編譯spdlog
1.第一步,下載spdlog
下載spdlog,下載地址:https://github.com/gabime/spdlog#header-only-version,從Github上下載zip壓縮包。下載完成后會獲取一個名為spdlog-1.x.zip的壓縮包
2.第二步,解壓縮
將壓縮包解壓,解壓后的內容如下所示
3.第三步,cmake構建工程
在第二步解壓后的目錄下,新建build文件夾(與第二步圖中bench、cmake等為同級目錄),打開命令行,進入build目錄下,執行以下命令
32位系統下執行:
> cmake -G "Visual Studio 14" ..64位系統下執行:
> cmake -G "Visual Studio 14 2015 Win64" ..
這里注意,因為我們的VS使用的是2015,所以命令中指定的是Visual Studio 14。編譯成功后,build文件夾下的內容如下:
4.第四步,編譯
使用VS2015打開spdlog.sln項目,設置成debug x64模式,右鍵spdlog的解決方案(包含6個項目),生成解決方案!
編譯完成后,在解決方案同級目錄下生成了Debug文件夾(如果將平臺配置為Release|X64,會生成Release文件夾,如下,我生成了2個)。作為開發者的話,我們也可以只單個生成spdlog項目,不必生成解決方案下所有的項目。
編譯完成后,Debug或者Release文件夾下生成了lib文件,Debug模式下生成的lib文件名為spdlogd.lib,Release模式下生成的文件名為spdlog.lib。到這里,下載編譯即成功了!
配置并使用
1.第一步,構建靜態鏈接庫
首先觀察spdlog項目的屬性頁,spdlog項目使用的頭文件均包含在spdlog1.x\include下
新建一個文件夾Spdlog,作為一個依賴庫文件夾。將include文件夾賦值進去,并在Spdlog下新建lib文件夾,將生成的spdlogd.lib及spdlog.lib添加進lib文件夾中去。
2.第二步,在項目中配置spdlog的使用環境
打開項目的屬性,按如下配置:
C/C++>常規附加包含目錄:添加include目錄
鏈接器常規附加庫目錄:添加lib目錄
鏈接器常規附加依賴項:(Debug模式添加spdlogd.lib,Release模式添加spdlog.lib)
C/C++ -> 預處理器 -> 預處理器定義:里添加_SCL_SECURE_NO_WARNINGS
最后一項預處理器不添加可能會引發:
error C4996: ‘std::_Copy_impl’: Function call with parameters that may be unsafe?
3.第三步,代碼中使用spdlog
#include#include
#include
#include
#include "spdlog/spdlog.h"
#include "spdlog/sinks/base_sink.h"
#include "spdlog/sinks/basic_file_sink.h"
#include "spdlog/sinks/stdout_color_sinks.h"
#include "spdlog/sinks/rotating_file_sink.h"
int main()
{
// 基本輸出
spdlog::info("信息");
spdlog::warn("警告");
spdlog::error("錯誤");
spdlog::critical("危險");
std::cout << "\n" << std::endl;
// 帶參輸出
spdlog::info("I am {} , {} years old !", "LYSM", 22);
std::cout << "\n" << std::endl;
// 類型轉換
spdlog::info("42 = int:{0:d}; hex:{0:x}; oct:{0:o}; bin:{0:b}", 42);
std::cout << "\n" << std::endl;
// 創建日志對象
auto my_logger = spdlog::basic_logger_mt("basic_logger", "logs/basic-log.txt");
// 輸出日志到文件
my_logger->info("輸出日志到文件");
// 刷新,否則只有程序結束時才會把日志寫入文件
my_logger->flush();
// 關閉日志對象
spdlog::drop_all();
getchar();
return 0;
}
求助:小編水平不行,不知道spdlog怎樣使用一個logger將日志輸出到控制臺并保存為文件。會的大佬請支個招,謝謝!
參考:
https://blog.csdn.net/Simon798/article/details/103686732
https://blog.csdn.net/u011218356/article/details/104964860/
總結
以上是生活随笔為你收集整理的vs debug 模式生成的exe 另一台电脑_C++利用spdlog生成日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金大宝刷了卡不到账
- 下一篇: felzenszwalb算法_学习图像场