【问题标题】:Good, simple configuration library for large c++ project?用于大型 c++ 项目的好、简单的配置库?
【发布时间】:2010-10-22 21:02:37
【问题描述】:

我们正在用 C++ 开发一个相当大的项目,其中许多组件需要配置参数。我们希望使用一个中心位置来配置所有内容(例如注册表),最好使用漂亮而简单的 GUI(例如 Firefox 的 about:config)和简单的 API。

我很确定许多应用程序都存在此类问题,但找不到任何可用的库可以轻松用于此问题。有谁知道一个好的(最好是免费的)库可以用来做这个吗?

这应该可以在 Windows 和 Linux 中跨平台工作。

【问题讨论】:

  • 如果你的项目是windows项目,有理由不使用注册表吗?还是跨平台?

标签: c++ user-interface configuration


【解决方案1】:

boost::program_options 为命令行、环境变量和configuration files 的配置提供统一(和跨平台)支持。似乎它应该扩展到注册对各种参数感兴趣的大型软件系统的多个位(例如option groups)。尽管对 GUI 或持久性方面的帮助不大(但是用文本编辑器编辑配置文件有什么问题?)。

【讨论】:

  • 它有点符合“简单”的要求。而且我不会说它“好”,更像是“丑”(参见“好坏坏”),但它确实有效。
【解决方案2】:

我以前用过 libconfig,工作起来很简单,而且 LGPL。 http://www.hyperrealm.com/libconfig/

【讨论】:

  • 我已经使用过它并发现了泄漏问题。下载最新版本后,仍然泄漏。
【解决方案3】:

我使用了 John Torjo 代码的修改版本,来自 TechRepublic/DDJ (source)

【讨论】:

    【解决方案4】:

    multi platform ACE 库有一个 configuration 类,它使用具有 Windows .ini 格式的配置文件。

    【讨论】:

      【解决方案5】:

      我经常在pugxml 周围使用一个简单的包装器。我发现为枚举类型创建一个带有参数验证的配置类等可以使其余代码更加简洁。如果您只是在处理键/值对,则必须在整个代码中验证数据。通过为每个应用程序编写一个自定义类,您可以将所有内容放在一个地方。

      【讨论】:

        【解决方案6】:

        试试配置器。没有 GUI,但它是易于使用且灵活的 C++ 库,用于配置文件解析(从最简单的 INI 到具有任意嵌套和语义检查的复杂文件)。仅标题和跨平台。使用 Boost C++ 库。

        见:http://opensource.dshevchenko.biz/configurator

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-01-22
          • 1970-01-01
          • 2012-11-30
          • 2023-01-01
          • 2011-07-31
          • 2022-12-05
          • 2021-07-20
          相关资源
          最近更新 更多