2009-10-16 15 views
0

Objectif: J'ai une liste de fichiers d'en-tête (environ 50 d'entre eux), Et chaque fichier d'en-tête a quelques tableaux avec des éléments constants. J'ai besoin d'écrire un programme pour compter les éléments du tableau. Et créez une autre forme de sortie (qui sera utilisée par le groupe de matériel).nom de fichier comme argument

Ma solution: J'ai inclus tous les 50 fichiers impairs et j'ai écrit une application. Et puis j'ai jeté tous les éléments du tableau dans le format spécifié.

Mon environnement: V6 Visual Studio, Windows XP

Mon problème: Chaque fois qu'il ya un nouvel ensemble de fichiers d'en-tête, je suis en train de changer les VC++ paramètres du projet pour pointer vers la nouvelle ensemble de fichiers d'en-tête, puis reconstruire.

Ma question:

Un peu sain d'esprit en si,

  • Est-il possible de mentionner l'en-tête de une ligne de commande arguments ou quelque chose?
  • Je veux juste éviter recompiler la source chaque fois ...

Répondre

2

standard C et C++ vous permettent d'utiliser une macro dans:

#include SOME_MACRO_HERE 

La valeur élargie de SOME_MACRO_HERE doit semble correct pour une directive #include.

Par conséquent, en principe, vous pouvez utiliser l'équivalent de MSVC:

cc -DSOME_MACRO_HERE='<actualheader.h>' sourcefile.c 

Ou:

cc -DSOME_MACRO_HERE='"actualheader.h"' sourcefile.c 

Cela semble vous donner une réponse à votre première balle question.

Je ne suis pas convaincu que vous pouvez éviter la recompilation - vous pouvez (peut-être) éviter de retoucher, cependant.

+0

+1 En fait, j'utilise quelque chose comme la méthode ci-dessus. En fait, je n'édite pas le code source même maintenant, je ne change que le réglage du projet. – Alphaneo

1

Les en-têtes sont inclus lors de la compilation, il n'y a donc aucun moyen de modifier/ajouter des en-têtes lors de l'exécution. Pourquoi ne pas simplement écrire un script Perl court et simple qui va analyser les en-têtes et compter le nombre d'éléments du tableau?

+0

Finalement, je pense à un script perl ou ruby. Mais je voulais juste savoir, s'il y a une autre méthode. – Alphaneo

0

En fait, je suis arrivé à une solution qui fonctionne.

  • Step-1: Les noms de fichiers en-tête serait prédéfinir
  • Étape 2: En-têtes (set) avec différentes valeurs de paramètres sera placé dans dossiers différents
  • Étape 3: Bien que la compilation, pointez sur le chemin avec les en-têtes appropriés

la solution est pas ce que je voulais, mais encore, il était mieux que je pouvais comprendre.

Questions connexes