程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Google-glog 日志庫使用手記,glog日志文件名

Google-glog 日志庫使用手記,glog日志文件名

編輯:C++入門知識

Google-glog 日志庫使用手記,glog日志文件名


Google Glog 是一個C++語言的應用級日志記錄框架,提供了 C++ 風格的流操作和各種助手宏。試用了一下,感覺不錯,試用過程出了不少插曲。

1、開源項目首頁已經從https://code.google.com/p/google-glog/遷移到https://github.com/google/glog。當前主版本是0.3.4。

2、下載代碼後,雙擊根目錄下的google-glog.sln,Visual Studio 2015提示先進行遷移,成功後就可以編譯了。

3、在解決方案下有四個工程:libglog(是動態鏈接庫工程,生成libglog.dll和libglog.lib),libglog_static(是靜態庫工程,生成libglog_static.lib,運行時不需要libglog.dll),logging_unittest和logging_unittest_static是相應的測試工程。

4、不需要更改工程屬性。平台工具集是否是Windows XP(v140_xp)好像並不影響。Glog不支持Unicode寬字符集,工程屬性字符集保持多字節字符集。“C/C++”-“代碼生成”中的“運行庫”,libglog動態庫工程必須選擇“多線程DLL”或“多線程調試DLL”,libglog_static靜態庫工程必須選擇“多線程”或“多線程調試”。

5、按需要編譯庫。以靜態庫為例,動態庫多一步將libglog.dll拷貝到程序目錄下。分別編譯Debug和Release,將Debug版的重命名為libglog_static_d.lib。將編譯的lib文件拷貝到根目錄\src\glog下,\src\glog是頭文件目錄。這個版本的靜態庫在試用時並未發現有內存洩露問題。

6、將\glog目錄(包括了頭文件和庫文件)拷貝到自己的工程目錄下。也可以新建另外的庫目錄,也可以在工程屬性的附加目錄中增加相應目錄,這裡采用在代碼文件中控制。在工程資源管理器中添加glog頭文件,如果先添加glog目錄再添加頭文件會提示glog頭文件中的#include路徑出錯,手動刪除路徑中的“glog\”可解決。

7、在需要的地方#include "glog/logging.h"。建議添加到stdafx.h中。 

8、使用靜態庫必須添加#define GOOGLE_GLOG_DLL_DECL。動態庫不必添加。

9、因windows.h中定義的宏ERROR,與glog中定義的宏ERROR沖突,所以如果#include <windows.h>後要添加#define GLOG_NO_ABBREVIATED_SEVERITIES,並且代碼中要用google::GLOG_ERROR來代替原來的google::ERROR,相應的其他也改為:GLOG_INFO、GLOG_WARNING、GLOG_FATAL。

10、添加庫文件:#pragma comment(lib,"glog/libglog_static.lib")。針對Debug和Release版,用#ifdef控制。

1 #define GOOGLE_GLOG_DLL_DECL
2 #define GLOG_NO_ABBREVIATED_SEVERITIES
3 #include "glog/logging.h"
4 
5 #ifdef DEBUG
6     #pragma comment(lib,"glog/libglog_static_d.lib")
7 #else
8     #pragma comment(lib,"glog/libglog_static.lib")
9 #endif // DEBUG


11、自己的工程使用靜態庫時,必須選擇“多線程”或“多線程調試”。使用動態庫則選擇“多線程DLL”或“多線程調試DLL”。

12、未完繼續…

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved