最强大/可扩展的方式来实现对命令行标志的支持?

时间:2013-12-24 19:28:27

标签: c++

我应该如何实现对可以按任何顺序出现的命令行标志的支持?

例如gcc -I "dir" -o "file" -O1 ....

阅读每个argv并将其与每个可能的标志进行比较对我来说似乎是不好的做法,难以维护。

2 个答案:

答案 0 :(得分:2)

我建议使用Boost.Program_options。它将处理为您解析命令选项的所有复杂性。您只需指定可用选项的内容以及可以采用的值等等。

答案 1 :(得分:1)

最有用的设施之一是GNU Argp解析器。它不仅可以为您提出的要求提供可扩展的支持,而且还会自动生成--help--version个选项(如果您要求)。

它也随GNU Libc自动出现,甚至还有一个gnulib模块。