是否有工具可以从 XML(或类似的东西)生成 C/C++ 源代码以创建命令行参数解析功能?
现在对问题进行更详细的解释:
我到现在为止用过gengetopt用于命令行参数解析。这是一个很好的工具,可以从其自己的配置格式(文本文件)生成 C 源代码。例如gengetopt配置行
option "max-threads" m "max number of threads" int default="1" optional
除其他外生成一个变量
int max_threads_arg;
我以后可以用。
但是 gengetopt 没有为我提供这个功能:
一种从 gengetopt 配置格式生成 Unix 手册页的方法
一种从 gengetopt 配置格式生成 DocBook 或 HTML 文档的方法
当我有多个共享一些通用命令行选项的程序时,一种重用 C/C++ 源代码和重用 gengetopt 配置行的方法
当然 gengetopt 可以通过运行
command --help
但我正在搜索标记的文档(例如 HTML、DocBook、Unix 手册页)。
您是否知道是否有任何具有自由开源许可证的 C/C++ 命令行参数工具/库可以满足我的需求?
我猜想这样的工具会使用 XML 来指定命令行参数。这将使生成不同格式的文档变得容易(例如手册页)。只有在构建时才需要 XML 文件来生成 C/C++ 源代码。
我知道可以使用其他一些命令行参数解析库在运行时读取 XML 中的配置文件,但我正在寻找一种在构建时从 XML(或类似的东西)生成 C/C++ 源代码的工具.
更新 1
我想在编译时尽可能多地进行计算,在运行时尽可能少地进行计算。因此,我想避免为您提供命令行选项映射的库,例如 boost::program_options::variables_map ( tutorial )。
换句话说,我更喜欢args_info.iterations_arg
至 vm["iterations"].as<int>()
用户 tsug303 建议图书馆 TCLAP
.它看起来很不错。将选项分组将符合我的需要,这样当多个程序共享一些公共(public)选项时我可以重用代码。虽然它不会从 XML 格式的配置文件中生成源代码,但我几乎将该答案标记为已接受的答案。
但是没有一个建议的库能满足我的所有要求,所以我开始考虑编写自己的库。草图:一种新工具,它将自定义 XML 格式作为输入,并生成 C++ 代码和 XML 模式。其他一些 C++ 代码是使用工具 CodeSynthesis XSD 从 XML 模式生成的。这两 block C++ 代码组合成一个库。一个额外的好处是我们获得了命令行选项的 XML 架构,并且我们获得了一种将所有这些选项序列化为二进制格式(从 CodeSynthesis XSD 生成的 CDR 格式)的方法。我会看看我是否有时间编写这样一个库。更好的当然是找到一个已经实现的库。
今天我读到用户 Nore 的 suggested alternative .它看起来很有前途,当计划的 C++ 代码生成实现后,我会迫不及待地尝试一下。 Nore 的建议看起来与我一直在寻找的最接近。
最佳答案
也许这个TCLAP
图书馆能满足您的需求吗?
关于c++ - 从 XML(或类似的)生成 C/C++ 命令行参数解析代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463600/