C++开源码项目汇总
Google的C++开源码项目
v8 - V8 JavaScript Engine
V8 是 Google 的开源 JavaScript 引擎。
V8 採用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用。
V8 依据 ECMA-262 第三版中的说明使用 ECMAScript,并在使用 IA-32 或 ARM 处理器的 Windows XP 和 Vista、Mac OS X 10.5 (Leopard) 以及 Linux 系统中执行。
V8 能够独立执行,也能够嵌入不论什么 C++ 应用程序中。
nativeclient - Native code for web apps
Native Client是一个在Web应用程序中执行本地代码(眼下仅仅支持x86架构)的开源的研究性技术。提供更好的“富client”用户体验。它同意网络开发人员编写更强大的Web程序,这些程序直接通过系统执行而不用通过浏览器来进行,据Google称,它到最后将同意网络开发人员开发和桌面软件一样的的web程序。这些程序将带来更快的速度。Native Client类似于微软的ActiveX技术。它还能在Linux和Mac OS X下执行。
眼下它尚未支持IE,仅支持Google Chrome, Firefox, Safari
和Opera。
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++測试而生成的。
它是基于xUnit架构的測试框架。支持自己主动发现測试,丰富的断言集,用户定义的断言,death測试。致命与非致命的失败,类型參数化測试。各类执行測试的选项和XML的測试报告。
googlemock - Google C++ Mocking Framework
googlemock mock技术,在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。
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 文件浏览器。
单击此处可获得很多其它信息。
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报告的。
经典的C++库
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++集成开发环境工具。
50个知名的开源站点
1、http://snippets.dzone.com/tag/c/--数以千计的实用的C语言源码片段
2、http://www.hotscripts.com/category/c-cpp/scripts-programs/Hotscripts --提供数以百计的C和C++脚本和程序。全部程序都分为不同的类别。
3、http://www.planetsourcecode.com/vb/default.asp?
lngWId=3--超过万行C和C++免费的源码
4、http://freshmeat.net/browse/164/--超过9000个C编写的项目。
5、http://www.daniweb.com/code/c.html--DANIWEB提供的有用代码段。
6、http://www.programmersheaven.com/tags/C/--programmersheaven.com上的C编程资源。
7、http://www.ddj.com/code/ddj.html--Dr. Dobb’s Journal的源码。
8、http://www.cprogramming.com/cgi-bin/source/source.cgi--C和C + +编程资源。
9、http://www.codecogs.com/--CodeCogs是一项协作的开放源代码库,C/C++的数值方面的组件。
10、http://www.google.com/codesearch?q=programming++lang:c&cs_r=lang:c--谷歌代码的C源码。
11、http://www.codepedia.com/1/C--CodePedia是一个开放的关于系统编程和其它与电脑有关的议题。
12、http://www.cis.temple.edu/~ingargio/cis71/code/--为学生提供的一个简单的C语言程序的列表。
13、http://www.codeproject.com/?cat=2--codeproject提供的C/C++资源码项目。
14、http://www.thefreecountry.com/sourcecode/cpp.shtml--下面是一些C和C++库的DLL,VCLs。源码,元件,模块。应用程序框架,类库。源码片段等。你能够在您的项目中使用而不须要支付费用和版税。
15、http://people.sc.fsu.edu/~burkardt/cpp_src/cpp_src.html--这是一个全面的关于C++的345个源码清单。
16、http://www.cplusplus.com/src/--C++写的通用控制台程序和Windows程序代码清单。
17、http://users.cs.fiu.edu/~weiss/dsaa_c++/code/--C++语言数据结构与算法分析(第二版)的源码。
18、http://c.snippets.org/--C源码片段。
19、http://www.bbdsoft.com/downloads.html--C++源码。
20、http://www.moshier.net/天文学和数值软件源码
21、http://cplus.about.com/od/cgames/C_Games_with_Source_Code.htm--游戏有关的C++源码。
22、http://cliodhna.cop.uop.edu/~hetrick/c-sources.html--免费的C/C++数值计算源码。
23、http://www.mathtools.net/C_C__/Utilities/index.html--C/C++工具。
24、http://www.programmerworld.net/resources/c_library.htm--免费C++源码和其他实用的工具。
25、http://www.cmcrossroads.com/bradapp/links/cplusplus-links.html--布拉德阿普尔顿的C++链接-资源,项目。图书馆,教学和编码。
26、http://www.robertnz.net/cpp_site.html--这是一个收集了数C/C++站点链接列表的网页。
27、http://www.josuttis.com/libbook/examples.html--在这里,你能够看到并下载全部的本书的C++标准库样例。
28、ftp://66.77.27.238/sourcecode/cuj/--C/C++用户杂志
29、ftp://66.77.27.238/sourcecode/wd/--Windows开发人员网络
30、http://www.einet.net/directory/65892/Developers.htm--C程序
31、http://www.daniweb.com/code/cplusplus.html--有用代码段。
32、http://snippets.dzone.com/tag/c--C++源码
33、http://www.programmersheaven.com/tags/C--C++编程资源,programmersheaven.com
34、http://www.google.com/codesearch?
hl=en&lr=&q=programming--谷歌代码搜索-C++编程语言
35、http://www.codepedia.com/1/Cpp--CodePedia是一个开放的关于系统编程和其它与电脑有关的议题的站点。
36、http://www.codebeach.com/index.asp?
TabID=1&CategoryID=3--C++源码,Codebeach提供
37、http://freshmeat.net/browse/165/--5000项目写的C++编程语言
38、http://cplus.about.com/od/codelibrary/Code_Library_for_C_C_and_C.htm--代码库C、C + +和C#。
39、http://www.c.happycodings.com/--Visual Basic、PHP、ASP技术、C、C++大全。
40、http://www.blueparrots.com/--Borland C游戏,图像和声音源码范例。
41、http://www.java2s.com/Code/Cpp/CatalogCpp.htm--C++源码。
42、http://www.yeohhs.com/modules/mydownloads/--C与C++电子书和源码演示样例。
43、http://www.brpreiss.com/books/opus4/programs/index.htmlC++的数学方程和公式源码。
44、http://users.cs.fiu.edu/C++。
45、http://www.josuttis.com/libbook/examples.html--C++标准库-教程和參考资料。
46、http://emr.cs.uiuc.edu/~reingold/calendars.shtmlEdward M. Reingold's Calendar Book, Papers, and Code。
47、http://cpp.snippets.org/--c++源码档案。
48、http://ubiety.uwaterloo.ca/~tveldhui/papers/techniques/--用C和C++的解决科学问题。
49、http://c.ittoolbox.com/topics/core-c/--C/C++的IT工具框。
50、http://www.le.ac.uk/cc/tutorials/c/ccccdbas.html--本文件里包括有大量的C演示样例程序
以下结合自己多年的开发经验,想到哪里写到哪里。希望对新人有一定的帮助。
一、网络
网络库必须掌握 ACE 和 libevent, 一个是重量级的网络库。 一个是轻量级的网络库。
细致想想,如今那个程序不用网络啊。不懂网络,你将寸步难行啊。熟悉这两个开源库的 前提是你必须懂socket的原理,给大家推荐的好书就是《UNIX网络编程》。看懂这本书就能够了,其它的什么《windows网络编程》这些都不用看,由于网络编程,你学会了伯克利的套接字,你就能够在不论什么平台上进行网络编程了。不须要学什么windows下的网络编程,由于windows下的网络也是从伯克利套接字搞过来的。假设你学习《windows网络编程》,那么你那天在linux,unix下进行网络编程,你还得在学习一下。没有那个必要。
二、数据库
数据库嘛,开源的Mysql和开源的PostgreSQL仅仅要懂当中一个就能够了。商业数据库在掌握一个Oracle就能够了。文件数据库掌握 sqlite。只是请大家注意,不要被上面数据库名字给迷惑了。数据库的本质是SQL语句。一定要懂数据库的基本原理,熟练应用SQL语言,懂数据库的优化,存储过程等。数据库的原理搞懂了。拿什么数据库过来都轻松掌握。就不会在乎是Mysql还是Oracle了。
三、日志操作
日志操作推荐大家熟悉 log4cpp这个日志库, 支持多线程, 日志重定向到网络等都有, 反正你能想到的日志的功能都有。日志嘛,一个是方便查找问题,方便记录程序执行的一些情况。这是必须的。
四、管理后台
众所周知,敲代码是给其它人用的。不是自己用。所以在程序的易用性上,多给对方提供一些能够直接查看的管理界面,显得分成重要。为程序提供一个web的管理界面,方便用户登录上去查看程序的各种信息,非常有必要。
五、读取配置文件
全部的程序都必须有配置文件。方便配置一些项目,为程序提供灵活性。 所以敲代码。必须有读取配置文件的封装类。
六、内存池
全部的进程都须要分配内存。对C/C++来说,分配和管理内存是已经非常有挑战性的工作。给大家推荐 nedmalloc 这个开源的内存池库。nedmalloc是一个跨平台的高性能多线程内存分配库。非常多库都使用它。
七、缓存库
众所周知,缓存库用得最多的就是memcache了。在做数据库开发的时候特别实用。
八、脚本
脚本是一个非常有意思的东西,非常多功能,事实上我们仅仅要写个脚本就能够完毕。代码量少。开发速度快。
必须掌握的脚本,比較通用的要算 perl 了,非常古老的语言。可是功能太强大了。我能够保证的说,.net,java能干的工作,肯定能够让perl来干。C能干的, perl不一定能干。
perl作为linux。unix的系统集成的脚本语言,必须学会。
lua 语言,在游戏行业用得比較多。
python 脚本。功能非常强大。推荐学。
上面这些是全部程序都会用到的比較通用的功能。
在不同的应用领域,须要掌握不同开源库,比方搞游戏开发的。可能须要掌握开源的UI库CEGUI、duilib, 开源的3D引擎OGRE等。
C++开源码项目汇总的更多相关文章
- C++开源代码项目汇总
Google的C++开源代码项目 v8 - V8 JavaScript EngineV8 是 Google 的开源 JavaScript 引擎.V8 采用 C++ 编写,可在谷歌浏览器(来自 Go ...
- 源码下载:74个Android开发开源项目汇总
1. ActionBarSherlock ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所 ...
- fir.im Weekly - 600个 Android 开源项目汇总
本期 Weekly 收集了一些热度资源,包含 Android.iOS 开发工具与源码分享,程序员也应该了解的产品运营.设计等 Tips ,希望对你有帮助. 600个Android开源项目汇总 勤劳的 ...
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
- Vue常用经典开源项目汇总参考-海量
Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...
- 【前端】Vue.js经典开源项目汇总
Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...
- Vue.js经典开源项目汇总
Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...
- Vue.js经典开源项目汇总-前端参考资源
Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...
- 15个非常重要的Apache开源项目汇总
15个非常重要的Apache开源项目汇总 自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.本文列举了15个多年来非常重要的Apache项目,这些项目不仅对开源运动来说 ...
随机推荐
- Cocos2d-x开发的Android应用怎么加入插屏广告
Cocos2d-x系统开发游戏已经变得比較流行,但是用这个开发的游戏.想要加入广告就不是那么理想了.尤其是插屏广告.由于插屏广告通常是要在暂停或者结束游戏的时候展示才比較的合理.但是Cocos2d-x ...
- 【VC编程技巧】窗口☞3.4利用bitmap改变对话框的背景。
效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbl9qaW50/font/5a6L5L2T/fontsize/400/fill/I0JBQ ...
- python-openpyxl安装
今天在安装openpyxl的时候,一直提示错误,后来才发现仅仅安装它还不够,还需要其他两个库的支持1.安装jdcal2.安装et_xmlfile这两个库安装的方法,都是直接在命令行下面,进入库文件se ...
- Vue v-bind的使用
1.src <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...
- 30.IntellJ Idea 导入已存在的Maven项目
转自:https://blog.csdn.net/epdc2/article/details/53767386
- 2018 java实训总结(时间戳&&主键)
java实训题目:源管理系统. 答辩的时候被老师怼了以下几个的地方: 1.主键改变了 2.没时间戳却说自己的程序里有先后(这就是老师迂腐了,主键自增可以间接反馈出他加入的早晚,即使主键做出了改变但只是 ...
- 欧拉回路&欧拉路径学习笔记
基础性质(用来判定): 1.无向图欧拉回路没有奇数点 (有向图所有点入度等于出度) 2.无向图欧拉路径只有两个奇数点 (有向图有一个顶点入度比出度大1,有一个顶点出度比入度大1,其他的全相等) 3.图 ...
- 【Django】认证系统
目录 #. auth模块 1. 认证 authenticate() 2. 登陆 login(HttpRequest, user) 3. 注销 logout(request) 4. 认证判断 is_au ...
- rune 切片 go
package main import ( "fmt" ) func main() { var s = "go程序``**//;;''[p]=-\\&|@#$%^ ...
- 洛谷——P2590 [ZJOI2008]树的统计
https://www.luogu.org/problem/show?pid=2590#sub 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这 ...