C++ 经典开源代码

C++ 经典开源代码

在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行

而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可

经典的C++库

STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合

标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了, 故目前不怎么用它了。

Boost---------准标准库, 功能强大 涉及能想的到的大部分非特别领域的算法, 有一个大的C++社区支持

WxWindows-----功能强大的跨平台GUI库 ,它的功能和结构都类似 MFC,故原则上 可以通过WxWindows把现有MFC程序移植到非Win平台下

Blitz---------高效率的数值计算函数库 ,你可以订制补充你需要的算法

Log4cpp-------日志处理 ,功能类似java中的log4j

ACE-----------自适应通讯环境, 重量级的通讯环境库。

Crypto++ -----加/解密算法库, 非常专业的C++ 密码学函式库

CppUnit --- 一个c++的单元测试框架 类似 java 的JUnit

Loki ------- 一个实验性质的库,尝试把类似设计模式这样思想层面的东西通过

库来提供,他是C++的一个模板库,系C++"贵族", 它把C++模板的功能发挥到了极致

学术性的C++库:

FC++ --------The Functional C++ Library ,用库来扩充语言的一个代表作 ,模板库

CGAL ------- Computational Geometry Algorithms Library计算几何方面的大部分重要的 解决方案和方法以C++库的形式提供给工业和学术界的用户。

其它目前我感觉还不是很爽的C++库:

Doxygen ----注释文档生成工具 ,可恨的是 我找不到 windows版本

QT ----------大名顶顶的一个多平台的C++图形用户界面应用程序框架(GUI库) 可气的是他的 Windows版 是商业发布的要付费

xml4c--------IBM开发的XML Parser,系超重量级的, 适用大型应用中, 其DLL有 12M,恐怖吧

Xerces c++ --Apache的XML项目, 但 只支持少数的字符编码,如ASCII,UTF-8,UTF-16等,

不能处理包含中文字符的XML文档

XMLBooster ----- 也是一种 XML的 解析工具

Fox -------又一种开放源代码(C++)的GUI库,功能不是很强

C++开发环境(Win平台下除了 Visual C++ 和 Borland C++以外的):

Cygwin --------Windows下的一个Unix仿真环境

MinGW --------GCC的一个Windows移植版本

Dev C++ -------- 一个C/C++ 的集成开发环境,在Windows上的C++编译器一直和标准有着一

段距离的时候,GCC就是一个让Windows下开发者流口水的编译器。

Eclipse-CDT ----IMB 开发的一个集成开发环境,一般用来作为Java 开发环境,但由于 Eclipse 是通过插件体系来扩展功能,这里我们 安装 CDT插件后,就可以用来作为

C++ 的集成开发环境

--------------------------------------------------------------------------------------

以下以 vc71环境 为例,其他环境 见各软件包的说明文档。

1. STLport (SGI STL库的跨平台可移植版本。)

-------http://www.stlport.org

vc71环境中编译安装

版本:STLport-4.6.2.tar.gz

copy vc71.mak makefile

nmake clean all

头文件在 %STLport_root%/include\stlport

库文件在 %STLport_root%/lib

头文件添加方法如:

#i nclude 需要链接lib库

2 WxWindows (跨平台的GUI库)

--------http://www.wxwindows.org

--------http://sourceforge.net/projects/wxwindows

--------http://i18n.linux.net.cn/others/wxWindowstut/wxTutorial.html

因为其类层次极像MFC,所以有文章介绍从MFC到WxWindows的代码移植以实现跨平台的功能。

通过多年的开发也是一个日趋完善的GUI库,支持同样不弱于前面两个库。并且是完全开放源代码的。新近

的C++ Builder X的GUI设计器就是基于这个库的。

vc71环境中编译安装

版本:wxMSW-2.6.0-Setup.exe

copy makefile.vc makefile


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、系统和网络编程库:ACE 除了ACE之外,还有很多系统和网络编程方面的程序库。比如在线程库方面,还有ZThread、boost::thread,如果放大到C/C++领域,还有APR,还有CII。在文件和目录操作方面,boost也有相应的组件,而在网络编程方面有socket++,还有boost::asio,未来的C ++0X中几乎肯定有一个网络编程和一个线程库。然而目前看来,ACE仍然是进行系统和高性能网络编程的首选,其地位在一段时间内不会被撼动。它不但是一个实用的程序库、框架集,还是一个典范的设计模式应用范例,非常值得学习。 2、GUI库:Qt 传统上Qt被认为是可移植的GUI库,但实际上Qt现在已经是一个比较完整的可移植应用程序框架了,其中包含了大量的工具,比如正则表达式、Web和 Socket类、2D和3D图形、XML解析、SQL类等,甚至还包括了一个完整的容器类库,不过其王牌还是GUI。在目前的跨平台GUI框架中,Qt成熟度最高,已经被一些大公司应用在关键产品中。由于Trolltech对Qt采用的dual license模式,该产品既可以从源社区获得支持,又能够赚取足够的商业利润,因此其前景也令人比较有信心。 Qt的主要技术特色是其元对象模型。Qt实际上使用的并不是标准的C++,而是标准C++的一个扩展。它通过元对象模型扩展,实现了著名的signal/slot机制,而这一机制也成为Qt的最大特色和优势。 与Qt类似的可移植GUI框架还有wxWidget、FOX等。 3、分布式对象中间件:ICE ICE是分布式对象中间件领域里的后起之秀,可以大致地将其视为“改进版”的CORBA。目前应用在一些大型项目当中,其中包括波音公司主持的下一代陆军作战系统。 ICE的一个特别价值是其代码的范例意义。由于ICE的出现较晚,发者比较系统地应用了新的C++编程风格,所以成为了研读C++代码的良好目标。 4、正则表达式:boost::regex 正则表达式是编程工作中最强有力的工具之一。C++的正则表达式支持一直以来是一个软肋。大约在2001年左右,boost中出现了regex库,初步解决了这个问题。但是最初的regex无论在效率上还是可靠性方面都有一些问题,后来经过一次大规模的翻修之后,达到了比较完善的程度。 其他可以选择的替代品还有C语言的pcre库,Qt中的QRegExp类等。 5、矩阵计算:MTL 自1995年以来,C++在科学计算领域当中取得了巨大的突破。这主要归功于template技术的高级应用,使得C++在科学计算的性能方面取得了巨大的进步,一大批优秀的C++科学计算库涌现出来。比如Blitz++、POOMA、MTL、Boost::uBLAS。而这其中,MTL就功能丰富程度、性能、发支持和成熟程度来讲,是比较突出的一个,因此可以优先考虑。值得一提的是,2002年,MTL与后来被Intel收购的KAI C++配合,曾经在性能评测中击败了FORTRAN。 6、XML、TinyXml C++的XML相关库不少,但是大部分其实都是C库,使用起来自然不那么轻便。其中基于DOM的有TinyXml,基于SAX的当然是Xerces。前者小巧快捷,便于使用,适合做数据交换。后者则是全功能的XML解析器。 7、内存管理:boost::smart_ptr,Hans-Boehm GC C/C++的内存管理是一个永恒的话题。一般来说,C++发者倾向于自己管理内存。然而,出乎很多C++发者意料的是,近期C++的一些领袖人物已经公宣称,如果不配备自动内存管理机制,用C++编写安全可靠的大型程序是非常困难的。而Bjarne Stroustrup也曾对中国发者建议,如果没有特别的理由,应该在大型项目中使用自动内存管理工具。因此,今天的C++发者应当积极地学习和应用自动内存管理设施。 说到自动内存管理,比较轻量级的做法是boost::smart_ptr,而激进的做法是引入完整的GC机制。目前源而又比较可靠的GC中,Hans- Boehm GC无疑是最受信赖的。作为一个保守的GC,Hans-Boehm GC在性能和功能方面都算是卓越。特别是,使用这个**,你仍然可以*elete、free来自己管理内存,对于我们编程习惯的冲击比较小。 8、配置管理:Lua 随着软件系统越来越复杂,对软件的可配置型提出了越来越高的要求。传统上只要通过命令行参数来配置的系统,现在可能需要越来越多的方式和机制。目前越来越受欢迎、并且得到越来越多证实的做法,是将Lua嵌入到C/C++程序中,而用Lua程序作为配置脚本。这种做法的优势是,Lua语言强大灵活,可以适应复杂的配置要求。同时,Lua便于嵌入C/C++程序,而且编译执行速度非常快,可以说是目前解决C/C++程序配置管理问题的一个出色方案。 9、密码及安全:OpenSSL 安全是今天进行C/C++编程无法回避和必须重视的问题。然而编写安全的应用程序,特别是跟网络相关的C/C++应用程序,是一件十分困难的事情。可以说,整个业界目前在这个进程上仍然处于“初级阶段”。特别是涉及到大量的安全、密码学相关的算法、规范,如果让发者自己摸索,其工作量和难度达到了不现实的程度。因此必须借助可靠的相关程序库才有可能提高程序的安全性。在这方面,OpenSSL是目前最好的选择,其内容之全面可靠,已经成为业界标杆。然而,由于安全编程固有的复杂性,即使使用penSSL,发工作仍然是非常繁琐的。因此我们也希望能够尽快看到更简单、更易用的C/C++安全程序库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值