CPP64, le préprocesseur pour Windows 64 bits

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilitaires de ligne de commande - Index

CPP64.EXE n'est pas lié à CPP32.EXE, son équivalent Windows 32 bits. Par ailleurs, CPP64 ne supporte pas les options de la ligne de commande qui sont supportées par CPP32. Toutefois, CCPP64 supporte les mêmes directives du préprocesseur que celles supportées par CPP32.

L'exécution de CPP64.EXE revient à exécuter BCC64.EXE avec l'option -E ("Exécuter uniquement le préprocesseur"). CPP64.EXE produit un fichier qui liste un programme C ou C++, dans lequel tous les fichiers #include et toutes les macros #define ont été développés. Bien qu'il ne soit pas nécessaire d'utiliser le préprocesseur pour une compilation normale, ce fichier de listage peut être utile à des fins de débogage.

Souvent, lorsqu'un compilateur signale une erreur dans une macro ou un fichier d'inclusion, vous pouvez obtenir davantage d'informations sur la nature de l'erreur en consultant les fichiers d'inclusion ou les résultats du développement des macros. Dans de nombreux compilateurs à plusieurs passes, les résultats de la phase de prétraitement sont préservés et peuvent être examinés. Comme les compilateurs BCC32 et BCC64 sont tous deux des compilateurs à une seule passe, vous devez utiliser CPP64 si vous voulez obtenir la sortie du prétraitement.

Fichier de sortie

Pour chaque fichier traité par CPP64, la sortie est écrite dans un fichier du répertoire en cours portant le même nom que le fichier source mais avec l'extension .i :

MyApp.i

Ce fichier de sortie est un fichier texte contenant chaque ligne du fichier source et tous les fichiers d'inclusion. Les lignes contenant des directives de prétraitement ont été retirées, de même que les lignes de texte conditionnel exclues de la compilation. Dans chaque ligne de texte, les macros sont remplacées par leur texte développé.

Syntaxe de la ligne de commande

CPP64 <filename[s]>

<filename> définit le fichier à traiter. Il est possible de spécifier plusieurs fichiers. Au moins un fichier doit être spécifié.

Exemple

Considérons que vous avez les fichiers suivants :

  • pch.h :
  #include <P:\Test CPP64\File2.h>
  #include <P:\Test CPP64\File1.h>
  • File1.h
  int File1Func1(double, double);
  double File1Func2(int, int);
  • File2.h
  void File2Func1(int x, int y);
  void File2Func2(int, double);

Voici la commande qui a été exécutée :

CPP64 preprocesor.png

Il s'agit du fichier de sortie pch.i

#line 1 "pch.h"
#line 1 "pch.h"
#line 1 "<built-in>"
#line 1 "<built-in>"
#line 147 "<built-in>"
#line 1 "<command line>"
#line 1 "<built-in>"
#line 1 "pch.h"
#line 1 "P:\\Test CPP64\\File1.h"
int File1Func1(double, double);
double File1Func2(int, int);
#line 1 "pch.h"

#line 1 "P:\\Test CPP64\\File2.h"
void File2Func1(int x, int y);
void File2Func2(int, double);
#line 2 "pch.h"

Voir aussi