Google-GLog编译以及使用
生活随笔
收集整理的這篇文章主要介紹了
Google-GLog编译以及使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
心血來潮要去看開源代碼,看到公司的日志庫是在google-glog開源庫上二次封裝的,那就先擼glog吧.
?
1.?下載源碼?
一條命令取源碼:git clone?github.com/google/glog
?
2.?編譯庫文件
雙擊打開,右鍵編譯,看到succeed,心情還不錯~
? ? ? ? ??
?
3.?其他工程調用
a.?建工程
b.?拷貝頭文件
c.?放置lib文件
?
d.?放置dll文件
e. TestDemo工程配置
配置一:
配置二:
配置三:
f.?運行
g.?一臉懵逼
?
h.?結論
?? ? ?洗洗睡吧 !
?
?
?編譯使用第二發
1. 痛定思痛,痛何如哉?
2.?原因分析
簡單的調用都出問題,不爽,看源碼。
?
我的Demo調用了這個宏來輸出
?
? 接著找到這個宏
?
調用了非C++基礎庫文件。問題找到。 原因在于,dll庫文件在編譯的時候,調用了非基礎庫的類。這個類在每個不同的編譯器上實現可能都不同,因此,用VS2008編譯,用VS2013調用會出問題, 問題表現為指針錯誤。 并且靜態庫一定要編譯器版本號對應。 解決方案也很簡單,VS2013編譯庫文件---->VS2013調用 VS2008編譯庫文件---->VS2008調用?
3.?糾正錯誤
改用VS2013編譯的庫,問題解決
?
4.?學到的東西
a. 庫文件調用,產生異常的內存讀取錯誤等等...為庫文件版本問題。 b. 通用的庫文件,動態庫,必須使用C++基本數據類型編譯才可通用。 c. 靜態庫一定需要編譯器版本相同。 d. 靜態庫版本錯誤會導致各種鏈接錯誤。 ? ? ? ? ??? e. 本機編譯的dll文件,在調用的時候可以直接連接到源文件,比較好調試 測試代碼: 1 #include <iostream> 2 3 #include "glog/logging.h" 4 5 int main() 6 { 7 google::InitGoogleLogging("log"); 8 google::SetLogDestination(google::GLOG_INFO, "./myinfo"); 9 LOG(INFO) << "嘿嘿..."; 10 LOG(WARNING) << "呵呵..."; 11 LOG(ERROR) << "嘻嘻..."; 12 LOG(FATAL) << "哈哈..."; 13 LOG(INFO) << "嚶嚶..."; 14 15 return 0; 16 }?
5. 最后總結 老感覺少寫了點啥, 非常感謝同事WJ的幫助, 編程之路一個人獨行確實很難走下去,每次爆出束手無策的錯誤,總是讓人很迷茫. 有些經驗并不是搜索引擎能搜的到的. 樂于助人樂于分享的大牛們,都是我的榜樣.?轉載于:https://www.cnblogs.com/ccccnzb/p/6150496.html
總結
以上是生活随笔為你收集整理的Google-GLog编译以及使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ primer 详解(第三章)
- 下一篇: 今年想在哈尔滨报班学雅思,价钱不贵而且能