看了原问题,现在主要针对现问题回答一下。
首先列举一下我已知的命令行参数解析库:
首先说getopt系列函数
这个函数库,可以简单处理长参数、短参数,并且可以处理他们的一些附属的参数。简单的命令行参数处理则可以使用该库。该库适用于C和CPP。
该库是POSIX的函数库,微软的msvc似乎没有,但是应该有win32移植的库。
cmdline
该库只有一个头文件,不需要链接其他库,非常方面。但是该库应该只可以用于CPP而不能用于C,它使用了OOP。
gflags
该库的爹是Google,比较有实力,并且也比较强大。但是该库应该只适用于CPP。另外该库,学习成本会比较高(相对于cmdline和get_opt而言)。
FFlags
该库是我自己设计的,用在自己的小项目上(因为getopt不能用在msvc上,而我又懒得找win32的移植库)。同时,getopt又没办法实现类似于git add
这样子对子程序的支持(没法原生实现),因此我决定自己写个简单的。
fflags是基于C语言的命令行参数解析程序,它可以支持解析unix-like
和windows
风格的命令行程序。支持使用子程序,例如math sub xxx
,其中sub
即math
的子程序,不同的子程序可以使用不同的解析方式
其他库
其他库我基本没怎么使用过,据说Boost.Program_options也是非常常用的,但是依赖会比较多。