我的工具箱中应该有哪些现代C++库?

194

我已经脱离了C++游戏约10年,现在想重新进入并开始商业应用程序的开发。目前有哪些库在使用?

  • 用户界面(如wxWidgetsQt
  • 数据库
  • 通用(如BoostLoki、STL)
  • 多线程
  • 测试
  • 网络/套接字

我想实现跨平台兼容性(尽可能直接支持各平台)。

你依赖哪些库?它们提供了什么功能使它们成为“不可或缺”的?

请参见下面的我的回答以获得摘要。

7个回答

207
跨平台的库,可用于商业(或非商业)应用程序且免费。
随意添加到此列表中。
  • 通用库
    • Boost (C++ 库集合)
    • Loki (C++ 设计模式库)
    • MiLi (C++ 数学库)
    • POCO (C++ 网络库)
    • STL (当然啦)
    • STXXL (针对大型数据集的 STL 重新实现)
    • Qt (跨平台 GUI 库)
    • ASL (Adobe C++ 库)
    • JUCE (音频应用开发框架)



这里提供了其他开源C++库列表的链接:

http://en.cppreference.com/w/cpp/links/libs


1
如果您也展示XML库,那就太棒了... - Oliver
1
@OliverStutz 我已经添加了一些XML库。 感谢这个优秀答案,它包含了哪一个要使用的分析。 - JBentley
@JBentley 谢谢,我使用Pugixml,发现它非常棒,小巧,可编译... :-) - Oliver
@@AfzaalAhmadZeeshan 综合工具包似乎符合此问题/答案的标准,它是跨平台和免费的。我现在已经将其添加回来了。您能解释一下为什么您认为它不适合此列表吗? - JBentley
我认为,Boost库是最适合一般用途的。 - Mahmut EFE
显示剩余4条评论

32

11

在Windows上...

ATL用于COM开发, WTL用于用户界面。


10

CGAL是一个出色的C++计算几何库。

www.cgal.org


8

http://loki-lib.sourceforge.net/ 也可能是一个不错的补充。

这是另一个模板库,引入了 typelists,并提供了各种设计模式的实现。

我从未使用过它,但我阅读了 Alexandrescu 的书以更好地理解模板。


12
Loki的ScopeGuard会改变你的生活。说真的,你会变得更强、更快、更有吸引力,对异性更具吸引力。 - j_random_hacker

5

CppUnit用于单元测试和测试驱动开发


0
除了已经列出的所有优秀库之外,我发现将xerces用于XML(包括XSD验证)和xalan用于XSLT的组合非常有用(xalan是建立在xerces之上的)。据我所知,QT或POCO都没有XSLT功能(除非自从我上次使用它们以来已经添加了该功能)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接