Arduino: #define in mehreren Dateien verwenden

#7695949
Lesenswert?

Ich habe ein anscheinend simples Problem, aber komme nicht auf eine einfache Lösung: ich brauche einen Versionsstring

1
#define FW_VERSION "3.1.0"

mehrfach im Projekt in unterschiedlichen Dateien. Wie mache ich das, ohne eine extra .h in jede einzubinden oder geht das nicht anders?

#7697329
Lesenswert?

Luky S. schrieb:

Ich habs jetzt mit der extra .h gemacht, danke, funktioniert!

Du wirst recht schnell feststellen, dass noch weiter Sachen zentral gebraucht werden. Schalter für Module, Debuginfos, Konfiguration.

Nenne die Datei, die Du überall einbindest, ruhig config.h oder appl.h oder project.h oder so.

Und dann wirst Du feststellen, dass Du eine Version in dem Format vermutlich doch nicht mehrfach brauchst

#7768500
Lesenswert?

Veit D. schrieb:

man könnte das #define vor allen #includes<> platzieren.

Oh Mann ! Meist wird ja schon vergessen, die eine Versionsnummer bei Änderungen hochzuzählen. Da nimmt man also 12 verschiedene und lässt sich überraschen, wann welche gezählt wurde.

Natürlich gehört das in eine .h - Datei. Genau dafür sind die da !

Und wenn es dann immer noch nicht funktioniert (mit dem Zählen bei den Programmierern), wird die Datei im Build-Prozess von Subversions subwcref.exe generiert.

Persönliche Seite #7771646
Lesenswert?

Flunder schrieb:

Veit D. schrieb:

man könnte das #define vor allen #includes<> platzieren.

Oh Mann ! Meist wird ja schon vergessen, die eine Versionsnummer bei Änderungen hochzuzählen. Da nimmt man also 12 verschiedene und lässt sich überraschen, wann welche gezählt wurde.

Natürlich gehört das in eine .h - Datei. Genau dafür sind die da !

Wenn man eine .h die z.B. Versionskennungen enthält in allen Modules includieren will und sicher gehen will, dass man sie in keinem (neuen) Modul vergisst, kann man auch im Makefile:

1
gcc ... -include version.h ...

und der Header wird automatisch includiert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren