最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++第三方日志庫Glog的安裝與使用介紹

 更新時(shí)間:2022年02月24日 10:06:45   作者:wendy_ya  
這篇文章主要介紹了C++第三方日志庫Glog的安裝與使用介紹,本文配置所采用的環(huán)境為Visual?Studio2017,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下

一、glog介紹

Google Logging(glog)是一個(gè)實(shí)現(xiàn)應(yīng)用程序級(jí)日志記錄的C++98庫。該庫提供了基于C++風(fēng)格流和各種輔助宏的日志API。

二、glog下載

Glog的地址已經(jīng)從https://code.google.com/p/google-glog/ 變?yōu)榱薶ttps://github.com/google/glog,請(qǐng)從該鏈接地址下載最新版。

官方文檔:http://google-glog.googlecode.com/svn/trunk/doc/glog.html。

三、環(huán)境介紹

本文配置所采用的環(huán)境為Visual Studio2017。

三、glog的編譯詳解

3.1 利用CMake進(jìn)行編譯,生成VS解決方案

首先需要下載并安裝CMake,下載方法參考文章:Windows下CMake的下載與安裝詳解。

然后需要從github上下載glog的源碼。我們這里將源碼下載到文件夾E:\3PartyLibrary下。
然后在glog-master文件夾內(nèi)新建一個(gè)build文件夾,用于存放編譯完成的文件。
【注意】:如果建在該文件夾外部,會(huì)引發(fā)錯(cuò)誤?。。?/strong>

然后使用cmake-gui生成VS解決方案。如下圖所示。

這里選擇你使用的編譯器(我這里使用的是Visual Studio2017),然后在下方輸入x64:

點(diǎn)擊Finish完成。稍等幾分鐘CMake進(jìn)行配置,配置完畢后如下圖所示:

這時(shí)需要進(jìn)行如下設(shè)置:

①是BUILD_SHARED_LIBS,這個(gè)選項(xiàng)我們要勾上,因?yàn)槲覀冃枰獎(jiǎng)討B(tài)庫。
②是CMAKE_INSTALL_PREFIX,這個(gè)路徑是install后生成的頭文件和庫文件存放的路徑,這里我們?cè)谠创a同級(jí)目錄下創(chuàng)建一個(gè)文件夾,命名為install。

③和④分別是WITH_GFLAGS和WITH_UNWIND,這兩個(gè)我也不是很清楚是做什么的,但是如果把這兩個(gè)勾上的話,在cmake的過程中就會(huì)報(bào)warning,因此都不勾。

之后分別點(diǎn)擊Configure和Generate,生成完成后沒有紅色選項(xiàng)。

3.2 利用VS對(duì)項(xiàng)目進(jìn)行編譯

上述步驟生成完畢后,會(huì)在build目錄下會(huì)生成sln解決方案,使用Visual Studio打開glog.sln解決方案,打開后目錄如下:

選擇Release模式,分別對(duì)ALL_BUILD和INSTALL兩個(gè)項(xiàng)目進(jìn)行生成,如下圖所示。(如果項(xiàng)目在debug模式下開發(fā),就在debug模式下生成glog的DLL文件;如果項(xiàng)目在release模式下開發(fā),就在release模式下生成glog的DLL文件;我這里選擇的是Release模式)

生成過程應(yīng)該不會(huì)有錯(cuò)誤。

生成成功后就在install目錄下生成頭文件和庫文件。如下圖所示。

ok!以上便是glog編譯的全部內(nèi)容了,接下來的小節(jié)介紹一下glog的基本使用。

四、glog的基本使用

4.1 創(chuàng)建VS項(xiàng)目

新建一個(gè)Visual Studio項(xiàng)目,Release生成。

這里,為了代碼目錄結(jié)構(gòu)清晰,將上面生成的頭文件放在了include文件夾中,將上面生成的.lib文件放在了lib文件夾中,將上面生成的.dll文件放在工程所在文件夾中,如下圖所示。

4.2 將glog相關(guān)文件包含在項(xiàng)目中

在使用vs新建項(xiàng)目后,需要將我們上面生成的頭文件包含在項(xiàng)目的Include Directories中,將上面生成的庫文件包含在項(xiàng)目的Library Directories中。如下圖所示。

【注意】:一定要選擇x64和Release!?。?/p>

4.3 編寫代碼進(jìn)行測(cè)試

最簡單的測(cè)試代碼如下:

#ifndef GLOG_NO_ABBREVIATED_SEVERITIES
#define GLOG_NO_ABBREVIATED_SEVERITIES // 如果不加這個(gè)宏定義代碼就會(huì)報(bào)錯(cuò)
#endif
#include <glog/logging.h>

#pragma comment(lib, "glog.lib")

int main(int argc, char* argv[])
{
	FLAGS_alsologtostderr = true;//是否將日志輸出到文件和stderr
	google::InitGoogleLogging("test");//使用glog之前必須先初始化庫,僅需執(zhí)行一次,括號(hào)內(nèi)為程序名
	LOG(INFO) << "Hello,GLOG!";
	google::ShutdownGoogleLogging();//當(dāng)要結(jié)束glog時(shí)必須關(guān)閉庫,否則會(huì)內(nèi)存溢出

	return 0;
}

輸出為:

I20220220 14:27:55.136509 5080 test.cpp:9] Hello,GLOG!

【注意】:GLog在整個(gè)項(xiàng)目周期中只允許生成一個(gè)日志文件,也就是說,glog從初始化到注銷整個(gè)過程,不允許再次調(diào)用glog的初始化或者注銷,另一種意思可以理解為只允許有一個(gè)實(shí)例化對(duì)象。

4.4 測(cè)試代碼2

測(cè)試代碼如下:

#ifndef GLOG_NO_ABBREVIATED_SEVERITIES
#define GLOG_NO_ABBREVIATED_SEVERITIES // 如果不加這個(gè)宏定義代碼就會(huì)報(bào)錯(cuò)
#endif
#include <glog\logging.h>

#pragma comment(lib, "glog.lib")
int main()
{
	google::InitGoogleLogging("test");//使用glog之前必須先初始化庫,僅需執(zhí)行一次,括號(hào)內(nèi)為程序名
	FLAGS_alsologtostderr = true;//是否將日志輸出到文件和stderr
	FLAGS_colorlogtostderr = true;//是否啟用不同顏色顯示
	google::SetLogDestination(google::GLOG_INFO, "E:\\logs\\INFO_");//INFO級(jí)別的日志都存放到logs目錄下且前綴為INFO_
	google::SetLogDestination(google::GLOG_WARNING, "E:\\logs\\WARNING_");//WARNING級(jí)別的日志都存放到logs目錄下且前綴為WARNING_
	google::SetLogDestination(google::GLOG_ERROR, "E:\\logs\\ERROR_");	//ERROR級(jí)別的日志都存放到logs目錄下且前綴為ERROR_
	google::SetLogDestination(google::GLOG_FATAL, "E:\\logs\\FATAL_");	//FATAL級(jí)別的日志都存放到logs目錄下且前綴為FATAL_
	LOG(INFO) << "info";
	LOG(WARNING) << "warning";
	LOG(ERROR) << "error";
	/*LOG(FATAL) << "fatal";*/
	google::ShutdownGoogleLogging();//當(dāng)要結(jié)束glog時(shí)必須關(guān)閉庫,否則會(huì)內(nèi)存溢出
	return 0;
}

代碼執(zhí)行后,會(huì)在E:\logs文件夾下生成四個(gè)log文件,這里我沒有將FATAL也打印出來是因?yàn)楫?dāng)glog檢測(cè)到"LOG(FATAL)<<"代碼時(shí)就會(huì)直接結(jié)束程序,不繼續(xù)執(zhí)行后面的代碼。

五、代碼詳解

5.1 define

除了上述在前三行加入代碼外,也可以選擇添加預(yù)處理項(xiàng)。項(xiàng)目屬性 ——> c/c++ ——> 預(yù)處理器。 添加GLOG_NO_ABBREVIATED_SEVERITIES。

5.2 include

在需要使用glog打印日志的cpp文件中包含頭文件,及加載glog庫文件。注意:每個(gè)使用glog的cpp文件都要添加,代碼如下:

#include "glog/logging.h"
#pragma comment(lib,"libglog.lib")

5.3 InitGoogleLogging

用glog之前必須先初始化庫,要生成日志文件只需在開始log之前調(diào)用一次:

google::InitGoogleLogging(argv[0]);  //括號(hào)內(nèi)是程序名

5.4 ShutdownGoogleLogging

當(dāng)要結(jié)束glog時(shí)必須關(guān)閉庫,否則會(huì)內(nèi)存溢出:

google::ShutdownGoogleLogging();

下一篇文章(C++第三方日志庫Glog基本語法介紹)會(huì)對(duì)glog庫的基本語法進(jìn)行詳細(xì)介紹,歡迎關(guān)注~

參考:

https://blog.csdn.net/w_b_h/article/details/107070652
https://blog.csdn.net/qq_27278957/article/details/84648912
https://blog.csdn.net/fx_odyssey/article/details/102815949
https://blog.csdn.net/weixin_33929309/article/details/85541046
https://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html
https://my.oschina.net/u/4320185/blog/3755592

到此這篇關(guān)于C++第三方日志庫Glog的安裝與使用介紹的文章就介紹到這了,更多相關(guān)C++第三方日志庫Glog內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt之ui在程序中的使用-多繼承法介紹

    Qt之ui在程序中的使用-多繼承法介紹

    本文將介紹Qt之ui在程序中的使用-多繼承法,需要的朋友可以參考
    2012-11-11
  • C語言冷知識(shí)之預(yù)處理字符串操作符詳解

    C語言冷知識(shí)之預(yù)處理字符串操作符詳解

    當(dāng)年學(xué)習(xí)C語言的第一門課就提到過標(biāo)記(Token)的概念,不過,相信在多年之后你再次聽到這個(gè)術(shù)語時(shí)會(huì)一臉懵逼,比如我。因此特地翻了翻資料,整理下來這些筆記,希望對(duì)大家有所幫助
    2022-11-11
  • Seesion在C++服務(wù)端的使用方法

    Seesion在C++服務(wù)端的使用方法

    這篇文章主要介紹了Seesion在C++服務(wù)端是怎么使用的?本文給出了解決方案和實(shí)例代碼供大家參考,需要的朋友可以參考下
    2020-02-02
  • C++?棧和隊(duì)列的實(shí)現(xiàn)超詳細(xì)解析

    C++?棧和隊(duì)列的實(shí)現(xiàn)超詳細(xì)解析

    棧和隊(duì)列,嚴(yán)格意義上來說,也屬于線性表,因?yàn)樗鼈円捕加糜诖鎯?chǔ)邏輯關(guān)系為?"一對(duì)一"?的數(shù)據(jù),但由于它們比較特殊,因此將其單獨(dú)作為一章,做重點(diǎn)講解
    2022-03-03
  • VS Code遠(yuǎn)程連接Linux服務(wù)器調(diào)試C程序的操作方法

    VS Code遠(yuǎn)程連接Linux服務(wù)器調(diào)試C程序的操作方法

    這篇文章主要介紹了VS Code遠(yuǎn)程連接Linux服務(wù)器調(diào)試C程序的操作方法,打開遠(yuǎn)程 Linux 服務(wù)器上的文件夾本文以 /root/ 為例,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • 利用C++編寫簡易寶可夢(mèng)對(duì)戰(zhàn)小游戲

    利用C++編寫簡易寶可夢(mèng)對(duì)戰(zhàn)小游戲

    本文利用C++語言編寫了一個(gè)小時(shí)候課間嘴上玩的那種寶可夢(mèng)游戲,只有早期的三個(gè)寶可夢(mèng)和基礎(chǔ)招式,感興趣的朋友快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • QT中窗口關(guān)閉自動(dòng)銷毀的實(shí)現(xiàn)示例

    QT中窗口關(guān)閉自動(dòng)銷毀的實(shí)現(xiàn)示例

    這篇文章主要介紹了QT中窗口關(guān)閉自動(dòng)銷毀,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C語言實(shí)現(xiàn)三子棋游戲

    C語言實(shí)現(xiàn)三子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)三子棋游戲的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 在C語言中調(diào)用C++做的動(dòng)態(tài)鏈接庫

    在C語言中調(diào)用C++做的動(dòng)態(tài)鏈接庫

    如果你有一個(gè)c++做的動(dòng)態(tài)鏈接庫.so文件,而你只有一些相關(guān)類的聲明,那么你如何用c調(diào)用呢,別著急,本文通過一個(gè)小小的例子,讓你能夠很爽的搞定.
    2016-05-05
  • C語言大作業(yè)之圖書管理系統(tǒng)的實(shí)現(xiàn)詳程

    C語言大作業(yè)之圖書管理系統(tǒng)的實(shí)現(xiàn)詳程

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)應(yīng)用的普及,利用計(jì)算機(jī)對(duì)圖書館的日常工作進(jìn)行管理勢(shì)在必行,趁著寒假時(shí)間手把手帶你用C語言實(shí)現(xiàn)一個(gè)圖書管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2022-01-01

最新評(píng)論

沁阳市| 金湖县| 仙居县| 水富县| 汤阴县| 沅陵县| 定边县| 怀集县| 雷州市| 抚顺县| 达拉特旗| 平利县| 凤翔县| 永康市| 中方县| 蕉岭县| 民县| 阳新县| 抚顺市| 万全县| 姜堰市| 襄汾县| 乌什县| 南宫市| 晋州市| 阿图什市| 清原| 武邑县| 林甸县| 安西县| 南漳县| 青海省| 信宜市| 崇文区| 吉水县| 武邑县| 清镇市| 卢湾区| 乌什县| 甘孜县| 夏津县|