Frage

Ziel: Ich habe eine Liste von Header-Dateien (etwa 50 von ihnen), Und jede Header-Datei hat einige Arrays mit konstanten Elementen. Ich brauche ein Programm zu schreiben, um die Elemente des Arrays zu zählen. Und schafft eine andere Form der Ausgabe (die durch die Hardware-Gruppe verwendet wird).

Meine Lösung: Ich enthalten alle 50 ungeradee Dateien und schrieb eine Anwendung. Und dann abgeladen ich alle Elemente des Arrays in das angegebene Format.

Meine Umwelt: Visual Studio V6, Windows XP

Mein Problem: Jedes Mal gibt es einen neuen Satz von Header-Dateien, ich bin jetzt die VC ++ Projekteinstellungen Punkt auf den neuen Satz von Header-Dateien zu ändern, und dann wieder aufzubauen.

Meine Frage:

Ein bisschen in-sane aber

  • Gibt es eine Möglichkeit das zu erwähnen, Header von einer Befehlszeile Argumente, oder was?
  • Ich will nur wieder die Zusammenstellung der vermeiden Quelle jedes Mal ...
War es hilfreich?

Lösung

Standard C und C ++ können Sie einen Makro in verwenden:

#include SOME_MACRO_HERE

Der erweiterte Wert von SOME_MACRO_HERE muss für eine #include Richtlinie korrekt aussehen.

Damit im Prinzip könnte man die MSVC äquivalent verwenden:

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

Oder:

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

Das scheint Ihnen eine Antwort auf Ihre erste Kugel-Frage zu finden.

Ich bin nicht davon überzeugt, Sie Neuübersetzung vermeiden können -. Sie können (vielleicht) zu vermeiden Bearbeitung, obwohl

Andere Tipps

Header werden bei der Kompilierung enthält, so dass keine Mittel zur Veränderung / hinzufügen Header zur Laufzeit.

Warum gehst du nicht einfach eine kurze schreiben und einfache Perl-Skript, das Header analysieren werden und zählen Anzahl der Array-Elemente?

Eigentlich kam ich an einer Lösung, die funktioniert.

  • Schritt-1: Die Header-Datei-Name würde sein vordefinierte
  • Schritt-2: Headers (set) mit unterschiedlichem Parameterwerte werden gesetzt in verschiedene Ordner
  • Schritt-3: Während der Zusammenstellung, zeigen Sie auf die Weg mit dem entsprechenden Header

Die Lösung ist nicht das, was ich wollte, aber dennoch war es am besten konnte ich herausfinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top