Forum: Compiler & IDEs Problem mit AVR in Qt Creator


von Mathias O. (m-obi)


Lesenswert?

Hallo,

ich programmiere meine AVR's schon seit längerem im Qt Creator. Nun 
wollte ich mal alle meine Defines in der .config abspeichern. Also ich 
nutze die Option die Projekte als .creator abzuspeichern. Und in die 
.config kommen alle Defines.
Nun wollte ich dort auch F_CPU hinmachen, damit es Projektübergreifend 
ist.
Man kann auch aus jeder .c-Datei auf F_CPU zugreifen. Bei Mouseover, 
wird der Wert angezeigt.
Aber beim komilieren kommt die Warnung
1
c:\qt\tools\avr8_gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:90: Warnung: #warning "F_CPU not defined for <util/delay.h>" [-Wcpp]
2
 # warning "F_CPU not defined for <util/delay.h>"
3
   ^
Also anscheinend erkennt das #ifndef garnicht das #define in der 
.config.
Ich verwende Qt Creator 3.4.2 mit Qt 5.5.
Hat jemand das selbe Problem und evtl. schon eine Lösung?

von Kaj (Gast)


Lesenswert?

Mathias O. schrieb:
> Also anscheinend erkennt das #ifndef garnicht das #define in der
> .config.
Könnte vielleicht daran liegen, das du diese komische .config-Datei 
nicht includierst. Damit kann der Compiler/Präprozessor das define auch 
nicht finden...
Was die IDE bei Mouseover etc. anzeigt, hat nichts mit dem 
Compiler/Präprozessor/Linker zu tun.

Mach es einfach richtig, und schreib deine defines, die du immer wieder 
brauchst in eine config.h und includiere diese einfach.

Grüße

von Markus F. (mfro)


Lesenswert?

die <Project>.config-Datei ist m.E. nur für den Editor/Parser da, damit 
der weiß, welche Präprozessor-Optionen Du im Makefile (das Qt Creator ja 
nicht interprätiert) gesetzt hast. Beim Build werden die nicht 
verwendet.

So kann er z.B. im Editor das "grau Hinterlegen" von #ifdef 
DEBUG-Passagen im Editor aufheben, wenn Du -DDEBUG im Makefile gesetzt 
hast.

<Project>.config-Dateien spielen nur bei externen Builds (also dann, 
wenn man statt qmake Make oder CMake benutzt) eine Rolle.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.