我的工具箱中应该都有哪些现代 C++ 库? [关闭]

Posted

技术标签:

【中文标题】我的工具箱中应该都有哪些现代 C++ 库? [关闭]【英文标题】:What modern C++ libraries should be in my toolbox? [closed]我的工具箱中应该有哪些现代 C++ 库? [关闭] 【发布时间】:2010-10-21 03:16:44 【问题描述】:

我已经退出 C++ 游戏大约 10 年了,我想重新加入并开始开发商业应用程序。这些天在使用哪些库?

用户界面(例如,wxWidgets、Qt) 数据库 通用(例如Boost、Loki、STL) 线程 测试 网络/套接字

我希望能够跨平台兼容(尽可能开箱即用)。

您依赖哪些库?它们提供了哪些特性使它们“不可或缺”

请参阅下面的my answer 了解摘要。

【问题讨论】:

【参考方案1】:

可免费用于商业(或非商业)应用程序的跨平台库

请随意扩展此列表


通用 Boost Loki MiLi POCO STL(当然) STXXL(超大数据集的 STL 重新实现) Qt ASL JUCE
音频 FMOD Synthesis ToolKit 数据库 SOCI OTL LMDB++ 设计 IoC 框架 Hypodermic PocoCapsule Wallaroo 文档 LibreOffice API PoDoFo 图形 Allegro OGRE SFML 界面 FLTK GTK Qt Qwt wxWidgets VTK 散列 MurmurHash3 成像 Boost.GIL CImg DevIL EasyBMP FreeImage ITK OpenCV 记录 Boost.Log log4cxx Pantheios 嘲讽 Google Mock Hippo Mocks Turtle(用于 Boost 的 C++ 模拟对象库) 多媒体 openframework Cinder SDL 网络 ACE Boost.Asio ICE 测试 Boost.Test Google Test UnitTest++ doctest 线程 Boost.Thread 版本控制 libgit2 Web 应用程序框架 CppCMS Wt XML Libxml2 pugixml RapidXml TinyXML Xerces-C++

其他开源 C++ 库列表的链接:

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

【讨论】:

如果你也显示 XML 库会很酷... @OliverStutz 我添加了一些 XML 库。归功于this excellent answer,其中包含对使用哪一个的分析。 @JBentley 谢谢,我使用 Pugixml,发现它非常棒,小巧,可编译... :-) @@AfzaalAhmadZeeshan 综合工具包似乎符合此问题/答案的标准,跨平台且免费。我现在已经重新添加了它。你能解释一下为什么你认为它不适合这个列表吗? 我认为,boost 库最适合通用目的。【参考方案2】:

很抱歉重复了一些已经写过的东西,但是:

用户界面:Qt 数据库:SOCI 通用:Boost、Loki、STLSoft Libraries、ASL 线程:Boost.Thread 测试:Boost.Test 构建工具:Boost.Build、SCons

(至少应该让你开始)

【讨论】:

【参考方案3】:

在 Windows 上...

用于 COM 开发的 ATL 用于用户界面的 WTL

【讨论】:

【参考方案4】:

CGAL 是一个优秀的计算几何的 c++ 库

www.cgal.org

【讨论】:

【参考方案5】:

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

这是另一个模板库,它引入了类型列表和各种设计模式的实现。

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

【讨论】:

Loki 的 ScopeGuard 将改变您的生活。严重地。你会变得更强壮、更快,对异性更有吸引力。【参考方案6】:

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

【讨论】:

【参考方案7】:

除了已经列出的所有优秀库之外,我发现 xerces for XML(包括 XSD 验证)和 xalan for XSLT 的组合很有用(xalan 构建在 xerces 之上)。 AFAIK QT 或 POCO 都没有 XSLT 功能(除非在我上次使用它们之后添加了它)。

【讨论】:

以上是关于我的工具箱中应该都有哪些现代 C++ 库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

不同的编程语言都有哪些优势? [关闭]

Windows 下都有哪些内存泄露监测工具

c++ 标准库函数都有哪些?

c++标准库都有哪些?

我的开源 Java 持久性库应该支持哪些其他 RDBMS [关闭]

有哪些 C++ 标准库使用最佳实践? [关闭]