4

我正在用 C++ 编写一个程序,该程序的行为类似于 SVN、systemctl 或其他一些工具:

./a.out SUBCOMMAND [OPTION]... arguments-for-the-subcommand

一个示例如下所示:

./a.out remove --recursive directory1 directory2

--recursive选项仅对remove子命令有效。

我目前正在使用 Boost.ProgramOptions,并且在我的尝试中没有运气(我现在唯一拥有的是一个接受 GNU getopt 方式的参数的程序)。虽然我更喜欢经过广泛测试的东西,但如果它是可移植的并且可以正常工作,那么切换到另一个库是没有问题的。

在此先感谢,如果问题没有得到很好的解释,我们深表歉意。

最好的问候,卡尔里什。

PS:不确定这是否有任何帮助,但我目前使用的是 GCC 4.7.2。

4

1 回答 1

2

Boost 程序选项实际上应该非常简单,因为您可以轻松构建多个选项列表。

您为每个子命令创建一个,然后检查argv[1]子命令是什么并使用正确的选项列表。

于 2013-03-25T12:33:58.027 回答