-o が Microsoft コンパイラおよびリンカーから削除される候補であるのはなぜですか?

はい。コンパイラ出力オプションを設定するには、/F を使用する必要があります。


Windows のコマンド ライン引数は、Unix のコマンド ライン引数とは異なります。それらは通常、- の代わりに / で始まり、cl.exe への引数 cc のものと必ずしも一致するとは限りません Unix で。

お探しのオプションは /Fe のようです


その背後に悪意のある目的があるとは限りません。おそらく、互換性に関連するものである可能性が高くなります (おそらく -o は、Microsoft の大口顧客が使用するビルド システムやその他のシステムに干渉している可能性があります)。

ただし、 コンパイラ ベンダーが確立された慣習や学習した反射神経を捨ててしまうのは面倒です。

しかし、Microsoft コンパイラと Unix コンパイラの (構文的および哲学的な) 違いは、単純なコマンド ライン スイッチよりも大きなものです。そのためには、単純なバッチ ビルド スクリプトから離れて、Makefile に移行することを試みることができます。あるいは、CMake や SCons などの実際のクロスプラットフォーム ビルド システムに移行することをお勧めします (これらは単なる例であり、私はそうではないことに注意してください)。それらのいずれかと結婚しました:) ).