我正在对接受命令行选项的程序进行一些维护。有单字母选项和长选项。目前,长选项有一个前面的连字符。
许多工具的长选项都有双连字符。为了与现有内容保持一致,我查看了一些 GNU 工具,发现对于长格式,单连字符和双连字符混合在一起。例如,GCC 编译器有--help
,--version
与-std
, -funroll-loops
。
所以我搜索了一些关于此事的文档,并找到了这个 GNU 文档。在那里,GNU 对长选项的风格建议是以两个连字符开头。
现在,我想知道为什么 GNU 工具不遵循这些 GNU 建议?我认为这是向后兼容的问题,但还有更多吗?
在我编写的程序中,在更改选项语法时,我通常会保留旧形式的功能但未记录,或者至少给出弃用警告。GCC(和其他)程序不能这样做吗?