我应该如何实现对可以按任何顺序出现的命令行标志的支持?
例如gcc -I "dir" -o "file" -O1 ....
阅读每个argv
并将其与每个可能的标志进行比较对我来说似乎是不好的做法,难以维护。
答案 0 :(得分:2)
我建议使用Boost.Program_options。它将处理为您解析命令选项的所有复杂性。您只需指定可用选项的内容以及可以采用的值等等。
答案 1 :(得分:1)
最有用的设施之一是GNU Argp解析器。它不仅可以为您提出的要求提供可扩展的支持,而且还会自动生成--help
和--version
个选项(如果您要求)。
它也随GNU Libc自动出现,甚至还有一个gnulib模块。