Trouver la version de compilateur C++ de Microsoft à partir de la ligne de commande (pour les makefiles)

Je doit manquer quelque chose de vraiment évident, mais pour une raison quelconque, la version de ligne de commande du compilateur C++ de Microsoft (cl.exe) ne semble pas soutenir la production de rapports seulement sa version lors de l'exécution. Nous avons besoin de cette fonction pour écrire un makefile vérifier que le compilateur de la version utilisateur de notre outil a installé (ils se makefile avec code, qu'ils sont pour compiler eux-mêmes localement, donc nous n'avons aucun contrôle sur leur version de compilateur).

Dans gcc, vous venez de donner l'option-v ou --version pour obtenir une belle chaîne de version imprimée.

Dans cl.exe, vous obtenez un message d'erreur pour -v.

J'ai lu le MSDN docs et le compilateur d'aide en ligne, et je ne trouve pas l'interrupteur, il suffit d'imprimer la version de compilateur. Fâcheusement, vous obtenez toujours la version lorsque le compilateur commence... mais vous semblez ne pas être en mesure de commencer le compilateur juste pour obtenir la version en sortir.

Trouver fournisseur de compilateur /version à l'aide de qmake semblaient similaires, mais traite uniquement le cas simple de la gcc.

Je suis en train d'essayer cela avec VC++ Express 2005, si ce qui compte. J'ai espéré qu'il ne serait pas, comme la détection de la version de compilateur est mieux fait dans un compilateur indépendant de la version façon 🙂

Mise à jour, après les réponses:

  • De course cl.exe sans arguments
    imprime sa version et un peu d'aide
    texte.
  • Cela ressemble le plus
    portable de façon à obtenir à la version,
    à travers vc versions.
  • Vous alors
    analyser un multi-ligne de sortie, mais que
    n'est pas trop difficile.
  • Nous l'avons fait dans
    à la fin, et ça fonctionne.