nativeclient - Native code for web apps
Native Client是一個在Web應用程序中執行本地代碼(眼下僅僅支持x86架構)的開源的研究性技術。提供更好的「富client」用戶體驗。它贊成網絡開發人員編寫更強大的Web程序,這些程序直接經過系統執行而不用經過瀏覽器來進行,據Google稱,它到最後將贊成網絡開發人員開發和桌面軟件同樣的的web程序。這些程序將帶來更快的速度。Native Client相似於微軟的ActiveX技術。它還能在Linux和Mac OS X下執行。html
眼下它還沒有支持IE,僅支持Google Chrome, Firefox, Safari 和Opera。java
tesseract-ocr - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
OCR(Optical Character Recognition):光學字符識別,是指對圖片文件裏的文字進行分析識別,獲取的過程。
Tesseract:開源的OCR識別引擎,初期Tesseract引擎由HP實驗室研發,後來貢獻給了開源軟件業,後經由Google進行改進,消除bug,優化,又一次公佈。當前版本號爲3.01.
google-glog - Logging library for C++
Google glog是一個基於程序級記錄日誌信息的c++庫。編程使用方式與c++的stream操做相似,例:
LOG(INFO) << "Found " << num_cookies << " cookies";
double-conversion - Binary-decimal and decimal-binary routines for IEEE doubles.
從V8引擎中抽出的有關數值計算相關的代碼,包含大數計算,數值到字符串轉換等
googletest - Google C++ Testing Framework
gtest測試框架[1]是在不一樣平臺上(Linux。Mac OS X,Windows。Cygwin,Windows CE和Symbian)爲編寫C++測試而生成的。python
它是基於xUnit架構的測試框架。支持本身主動發現測試,豐富的斷言集,用戶定義的斷言,death測試。致命與非致命的失敗,類型參數化測試。各種執行測試的選項和XML的測試報告。linux
googlemock - Google C++ Mocking Framework
googlemock mock技術,在c++單元測試可以任意改動函數行爲的技術。c++
googlemock是google基於gtest開發的mock框架,適用於c++單元測試。
libphonenumber - Google's phone number handling library, powering Android and more
一個專門用於處理電話號碼的庫
google-diff-match-patch - Diff, Match and Patch libraries for Plain Text
google-diff-match-patch這個類庫提供了強大的算法用於純文本內容的差別比較,匹配,打補丁。實現同步純文本所需要運行一些操做。支持多種語言包含:Java、JavaScript、C++、C#、Objective C、Lua和Python。web
libkml - a KML library written in C++ with bindings to other languages
libKML是解析,生成和操做KML的庫。使用OGC KML2.2標準。
KML。是 Keyhole 標記語言(Keyhole Markup Language)的縮寫。是一種採用 XML 語法與格式的語言,用於描寫敘述和保存地理信息(如點、線、圖像、多邊形和模型等)。可以被 Google Earth 和 Google Maps 識別並顯示。您可以使用 KML 來與其它 Google Earth 或 Google Maps 用戶分享地標與信息。固然,您也可以從 Google Earth 社區 等相關站點得到有趣的 KML 文件。Google Earth 和 Google Maps 處理 KML 文件的方式與網頁瀏覽器處理 HTML 和 XML 文件的方式相似。算法
像 HTML 同樣,KML 使用包括名稱、屬性的標籤(tag)來肯定顯示方式。所以,您可將 Google Earth 和 Google Maps 視爲 KML 文件瀏覽器。sql
單擊此處可得到不少其它信息。
gdata-cpp-util - Google Data APIs C++ utility library
一個Google Data APIs 的工具庫,可以GET/POST/PUT/DELETE
lutok - Lightweight C++ API for Lua
是一個 Lua 的 C++ wrapper
Lua 是一個小巧的腳本語言。數據庫
是巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)裏的一個研究小組,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所組成並於1993年開發。編程
其設計目的是爲了嵌入應用程序中,從而爲應用程序提供靈活的擴展和定製功能。Lua由標準C編寫而成,差點兒在所有操做系統和平臺上都可以編譯,執行。Lua並無提供強大的庫。這是由它的定位決定的。因此Lua不適合做爲開發獨立應用程序的語言。
Lua 有一個同一時候進行的JIT項目,提供在特定平臺上的即時編譯功能。
dcs-bwt-compressor - Data compressor program and library
dcsbwt是一個基於Burrower-Wheeler變換的數據壓縮程序庫
treetree - generic n-ary trees for C++
TreeTree (http://code.google.com/p/treetree/)是一個僅僅包括頭文件的 C++ Library。它實現了一個通用的 樹形結構容器類(遵照 STL約定),並且實現了 operator >> 和 operator <<。
它的底層包括一個雙向鏈表。
在前項指針和後項指針之外。每個樹節點還包括第三個指針--指向所有子節點的列表。
這個實現高效。並且 API 很清晰。TreeTree 可以表達不論什麼使用Lisp的S表達式能表達的東西(好比推理樹(inference trees, programs)等)。
可以使用前序和後序遍歷,僅僅遍歷某個節點的子節點。或者僅僅是在葉子節點遍歷。演示樣例的選項還包括遍歷子樹(如f(g(x,y),z) 前序遍歷,是f(g(x,y),z), g(x,y),x,y和z.
ctemplate - Powerful but simple template language for C++
ctemplate (Google-ctemplate)的設計哲學是輕量級。高速,且邏輯和界面分離。所以和ClearSilver和Teng是有一些差別的。比方Ctemplate就沒有模板函數,沒有條件推斷和循環語句(固然,它可以經過變通的方式來實現)。
ctemplate大致上分爲兩個部分,一部分是模板,還有一部分是數據字典。模板定義了界面展示的形式(V),數據字典就是填充模板的數據(M),你本身寫業務邏輯去控制界面展示(C),典型的MVC模型。
sparsehash - An extremely memory-efficient hash_map implementation
Google Sparse Hash 是 Google 一個很是節省內存的 hash map 實現
gflags - Commandline flags module for C++
Google GFlags 是一個命令行標記的處理庫。它可以替代「getopt()」,其內置對C++的支持比方string。
protobuf - Protocol Buffers - Google's data interchange format
Google Protocol Buffer 是一個平臺無關、語言無關的結構化數據的序列化與反序列化工具。
protocol buffer,可以用來在跨進程、跨機器,不一樣操做系統,不一樣編程語言之間進行數據交換。相似於微軟的COM IDL或者XML,但是解析速度更快,需要傳輸字節數更少。
(c+
+, java, python)
gperftools - Fast, multi-threaded malloc() and nifty performance analysis tools
TCMalloc,heap檢測,是一個google用於性能檢測的工具。(c++)
google-breakpad - Crash reporting
breakpad,一個項目的開始需要作一些什麼樣的基礎設施,crash dump和執行logging毫無疑問都是應該有的。這個項目就是負責在crash的時候收集信息,發出crash dump報告的。
STLport-------SGI STL庫的跨平臺可移植版本號,在曾經有些編譯器離符合標準比較遠的狀況下那時仍是實用的,固然眼下vc71已經比較接近標準了,故眼下不怎麼用它了。
Boost---------準標準庫,功能強大涉及能想的到的大部分非特別領域的算法,有一個大的C++社區支持
WxWindows-----功能強大的跨平臺GUI庫,它的功能和結構都相似MFC,故原則上可以經過WxWindows把現有MFC程序移植到非Win平臺下
Blitz---------高效率的數值計算函數庫 ,你可以訂製補充你需要的算法
Log4cpp-------日誌處理,功能相似java中的log4j
ACE-----------自適應通信環境。重量級的通信環境庫。
Crypto++ -----加/解密算法庫, 很專業的C++ password學函式庫
CppUnit --- 一個c++的單元測試框架 相似 java 的JUnit
Loki ------- 一個實驗性質的庫,嘗試把相似設計模式這樣思想層面的東西經過庫來提供,他是C++的一個模板庫,系C++"貴族",它把C++模板的功能發揮到了極致
學術性的C++庫:
FC++ --------The Functional C++Library ,用庫來擴充語言的一個表明做 ,模板庫
CGAL ------- Computational GeometryAlgorithms Library計算幾何方面的大部分重要的解決方式和方法以C++庫的形式提供給工業和學術界的用戶。
其餘眼下我感受還不是很是爽的C++庫:
Doxygen ----凝視文檔生成工具 ,可恨的是我找不到 windows版本號
QT ----------大名頂頂的一個多平臺的C++圖形用戶界面應用程序框架(GUI庫)可氣的是他的Windows版是商業公佈的要付費
xml4c--------IBM開發的XML Parser,系超重量級的,適用大型應用中,其DLL有 12M,恐怖吧。輕量級的有TinyXml
Xerces c++ --Apache的XML項目。 但 僅僅支持少數的字符編碼。如ASCII。UTF-8。UTF-16等,不能處理包括中文字符的XML文檔
XMLBooster ----- 也是一種 XML的 解析工具
Fox -------又一種開放源碼(C++)的GUI庫,功能不是很是強
C++開發環境(Win平臺下除了 VisualC++ 和 Borland C++之外的):
Cygwin --------Windows下的一個Unix仿真環境
MinGW --------GCC的一個Windows移植版本號
Dev C++ -------- 一個C/C++ 的集成開發環境,在Windows上的C++編譯器一直和標準有着一段距離的時候,GCC就是一個讓Windows下開發人員流口水的編譯器。
Eclipse-CDT ----IMB 開發的一個集成開發環境,通常用來做爲Java 開發環境。但由於Eclipse 是經過插件體系來擴展功能。這裏咱們 安裝 CDT插件後,就可以用來做爲C++集成開發環境工具。一、http://snippets.dzone.com/tag/c/--數以千計的實用的C語言源碼片斷
二、http://www.hotscripts.com/category/c-cpp/scripts-programs/Hotscripts --提供數以百計的C和C++腳本和程序。所有程序都分爲不一樣的類別。
三、http://www.planetsourcecode.com/vb/default.asp?
lngWId=3--超過萬行C和C++免費的源碼
四、http://freshmeat.net/browse/164/--超過9000個C編寫的項目。
五、http://www.daniweb.com/code/c.html--DANIWEB提供的有用代碼段。
六、http://www.programmersheaven.com/tags/C/--programmersheaven.com上的C編程資源。
七、http://www.ddj.com/code/ddj.html--Dr. Dobb’s Journal的源碼。
八、http://www.cprogramming.com/cgi-bin/source/source.cgi--C和C + +編程資源。
九、http://www.codecogs.com/--CodeCogs是一項協做的開放源代碼庫,C/C++的數值方面的組件。
十、http://www.google.com/codesearch?q=programming++lang:c&cs_r=lang:c--谷歌代碼的C源碼。
十一、http://www.codepedia.com/1/C--CodePedia是一個開放的關於系統編程和其它與電腦有關的議題。
十二、http://www.cis.temple.edu/~ingargio/cis71/code/--爲學生提供的一個簡單的C語言程序的列表。
1三、http://www.codeproject.com/?cat=2--codeproject提供的C/C++資源碼項目。
1四、http://www.thefreecountry.com/sourcecode/cpp.shtml--下面是一些C和C++庫的DLL,VCLs。源碼,元件,模塊。應用程序框架,類庫。源碼片斷等。你可以在您的項目中使用而不需要支付費用和版稅。
1五、http://people.sc.fsu.edu/~burkardt/cpp_src/cpp_src.html--這是一個全面的關於C++的345個源碼清單。
1六、http://www.cplusplus.com/src/--C++寫的通用控制檯程序和Windows程序代碼清單。
1七、http://users.cs.fiu.edu/~weiss/dsaa_c++/code/--C++語言數據結構與算法分析(第二版)的源碼。
1八、http://c.snippets.org/--C源碼片斷。
1九、http://www.bbdsoft.com/downloads.html--C++源碼。
20、http://www.moshier.net/天文學和數值軟件源碼
2一、http://cplus.about.com/od/cgames/C_Games_with_Source_Code.htm--遊戲有關的C++源碼。
2二、http://cliodhna.cop.uop.edu/~hetrick/c-sources.html--免費的C/C++數值計算源碼。
2三、http://www.mathtools.net/C_C__/Utilities/index.html--C/C++工具。
2四、http://www.programmerworld.net/resources/c_library.htm--免費C++源碼和其餘實用的工具。
2五、http://www.cmcrossroads.com/bradapp/links/cplusplus-links.html--布拉德阿普爾頓的C++連接-資源,項目。圖書館,教學和編碼。
2六、http://www.robertnz.net/cpp_site.html--這是一個收集了數C/C++站點連接列表的網頁。
2七、http://www.josuttis.com/libbook/examples.html--在這裏,你可以看到並下載所有的本書的C++標準庫樣例。
2八、ftp://66.77.27.238/sourcecode/cuj/--C/C++用戶雜誌
2九、ftp://66.77.27.238/sourcecode/wd/--Windows開發人員網絡
30、http://www.einet.net/directory/65892/Developers.htm--C程序
3一、http://www.daniweb.com/code/cplusplus.html--有用代碼段。
3二、http://snippets.dzone.com/tag/c--C++源碼
3三、http://www.programmersheaven.com/tags/C--C++編程資源,programmersheaven.com
3四、http://www.google.com/codesearch?
hl=en&lr=&q=programming--谷歌代碼搜索-C++編程語言
3五、http://www.codepedia.com/1/Cpp--CodePedia是一個開放的關於系統編程和其它與電腦有關的議題的站點。
3六、http://www.codebeach.com/index.asp?
TabID=1&CategoryID=3--C++源碼,Codebeach提供
3七、http://freshmeat.net/browse/165/--5000項目寫的C++編程語言
3八、http://cplus.about.com/od/codelibrary/Code_Library_for_C_C_and_C.htm--代碼庫C、C + +和C#。
3九、http://www.c.happycodings.com/--Visual Basic、PHP、ASP技術、C、C++大全。
40、http://www.blueparrots.com/--Borland C遊戲,圖像和聲音源碼範例。
4一、http://www.java2s.com/Code/Cpp/CatalogCpp.htm--C++源碼。
4二、http://www.yeohhs.com/modules/mydownloads/--C與C++電子書和源碼演示樣例。
4三、http://www.brpreiss.com/books/opus4/programs/index.htmlC++的數學方程和公式源碼。
4四、http://users.cs.fiu.edu/C++。
4五、http://www.josuttis.com/libbook/examples.html--C++標準庫-教程和參考資料。
4六、http://emr.cs.uiuc.edu/~reingold/calendars.shtmlEdward M. Reingold's Calendar Book, Papers, and Code。
4七、http://cpp.snippets.org/--c++源碼檔案。
4八、http://ubiety.uwaterloo.ca/~tveldhui/papers/techniques/--用C和C++的解決科學問題。
4九、http://c.ittoolbox.com/topics/core-c/--C/C++的IT工具框。
50、http://www.le.ac.uk/cc/tutorials/c/ccccdbas.html--本文件裏包括有大量的C演示樣例程序
如下結合本身多年的開發經驗,想到哪裏寫到哪裏。但願對新人有必定的幫助。
1、網絡
網絡庫必須掌握 ACE 和 libevent, 一個是重量級的網絡庫。 一個是輕量級的網絡庫。
細緻想一想,現在那個程序不用網絡啊。不懂網絡,你將步履維艱啊。熟悉這兩個開源庫的 前提是你必須懂socket的原理,給你們推薦的好書就是《UNIX網絡編程》。看懂這本書就可以了,其它的什麼《windows網絡編程》這些都不用看,因爲網絡編程,你學會了伯克利的套接字,你就可以在不論什麼平臺上進行網絡編程了。不需要學什麼windows下的網絡編程,因爲windows下的網絡也是從伯克利套接字搞過來的。假設你學習《windows網絡編程》,那麼你那天在linux,unix下進行網絡編程,你還得在學習一下。沒有那個必要。
2、數據庫
數據庫嘛,開源的Mysql和開源的PostgreSQL僅僅要懂當中一個就可以了。商業數據庫在掌握一個Oracle就可以了。文件數據庫掌握 sqlite。只是請你們注意,不要被上面數據庫名字給迷惑了。數據庫的本質是SQL語句。必定要懂數據庫的基本原理,熟練應用SQL語言,懂數據庫的優化,存儲過程等。數據庫的原理搞懂了。拿什麼數據庫過來都輕鬆掌握。就不會在意是Mysql仍是Oracle了。
3、日誌操做
日誌操做推薦你們熟悉 log4cpp這個日誌庫, 支持多線程, 日誌重定向到網絡等都有, 反正你能想到的日誌的功能都有。日誌嘛,一個是方便查找問題,方便記錄程序執行的一些狀況。這是必須的。
4、管理後臺
衆所周知,敲代碼是給其它人用的。不是本身用。因此在程序的易用性上,多給對方提供一些可以直接查看的管理界面,顯得分紅重要。爲程序提供一個web的管理界面,方便用戶登陸上去查看程序的各類信息,很是有必要。
5、讀取配置文件
所有的程序都必須有配置文件。方便配置一些項目,爲程序提供靈活性。 因此敲代碼。必須有讀取配置文件的封裝類。
6、內存池
所有的進程都需要分配內存。對C/C++來講,分配和管理內存是已經很是有挑戰性的工做。給你們推薦 nedmalloc 這個開源的內存池庫。nedmalloc是一個跨平臺的高性能多線程內存分配庫。很是多庫都使用它。
7、緩存庫
衆所周知,緩存庫用得最多的就是memcache了。在作數據庫開發的時候特別實用。
8、腳本
腳本是一個很是有意思的東西,很是多功能,事實上咱們僅僅要寫個腳本就可以完畢。代碼量少。開發速度快。
必須掌握的腳本,比較通用的要算 perl 了,很是古老的語言。但是功能太強大了。我可以保證的說,.net,java能幹的工做,確定可以讓perl來幹。C能幹的, perl不必定能幹。
perl做爲linux。unix的系統集成的腳本語言,必須學會。
lua 語言,在遊戲行業用得比較多。
python 腳本。功能很是強大。推薦學。
上面這些是所有程序都會用到的比較通用的功能。
在不一樣的應用領域,需要掌握不一樣開源庫,比方搞遊戲開發的。可能需要掌握開源的UI庫CEGUI、duilib, 開源的3D引擎OGRE等。