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

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

一个示例如下所示:
./a.out remove --recursive directory1 directory2

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

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

在此先感谢您,如果问题没有得到很好的解释,请对不起。

最好的祝福,
卡里什

P.S .:不确定这是否有帮助,但是我目前正在使用GCC 4.7.2。

最佳答案

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

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

08-18 00:01