コマンド ライン オプションを受け入れるプログラムのメンテナンスを行っています。1 文字のオプションと長いオプションがあります。現在、長いオプションの前にはハイフンが 1 つあります。
多くのツールでは、長いオプションにハイフンが 2 つ付いています。そこにあるものと一貫性を持たせようとして、いくつかの GNU ツールを調べたところ、長い形式の場合、単一のハイフンと二重のハイフンが混在していることがわかりました。たとえば、GCC コンパイラには--help
,--version
対-std
,があり-funroll-loops
ます。
そこで、この問題に関するドキュメントを検索したところ、この GNU ドキュメントが見つかりました。そこでは、GNU が推奨する長いオプションのスタイルは、2 つのハイフンで始めることです。
さて、GNU ツールがこれらの GNU の推奨事項に従わないのはなぜだろうか? 下位互換性の問題だと思いますが、それ以上のことはありますか?
私が書いたプログラムでは、オプションの構文を変更するとき、通常、古い形式は機能するが文書化されていないままにするか、少なくとも非推奨の警告を出します。GCC (およびその他の) プログラムでこれを行うことはできませんか?