AVR-Studio mit GCC, Projekt aufteilen

Gast #1452889
Lesenswert?

Hallo,
ich möchte mein Projekt in mehere .c-Files aufteilen, damit es 
übersichtlicher wird.

Wie kann ich Avr-Studio dazu bringen nur die main.c Datei zu compilieren 
und alle anderen .h und .c nur includieren?

Unter Netbeans kann man dazu  jeder Datei "exclude from build" 
aktivieren.
Bei Studio habe unterschiedliche AVRGCC-Schalter unter Projekt Options 
ausprobiert, ohne Erfolg.
#1452903
Lesenswert?

sasa schrieb:
> Hallo,
> ich möchte mein Projekt in mehere .c-Files aufteilen, damit es
> übersichtlicher wird.
>
> Wie kann ich Avr-Studio dazu bringen nur die main.c Datei zu compilieren
> und alle anderen .h und .c nur includieren?

Das willst du gar nicht.
Du willst haben, dass jedes einzelne *.c welches zum Projekt gehört, 
compiliert wird.

Diese Einzelteile werden danach zum kompletten Programm zusammengelinkt.

http://www.mikrocontroller.net/articles/FAQ#Ich_hab_da_mehrere_.2A.c_und_.2A.h_Dateien._Was_mache_ich_damit.3F
Gast #1452931
Lesenswert?

Danke,

jetzt funktioniert es wie in der FAQ. Ich muss dann aber bei jeder .c 
Datei alle Bibliotheken includieren wie z.B: <inttypes.h>,<avr/io.h>, 
<avr/interrupt.h> ...

Früher habe ich in der Haupdatei
>   #include teil-modul.c
geschrieben und mit z.B.
>   gcc hauptdatei.c -o start.exe
oder mit Netbeans übersetzt, man kann dan die Bibliotheken nur in der 
Hauptdatei definieren.
Gast #1452942
Lesenswert?

>Früher habe ich in der Haupdatei
>>   #include teil-modul.c
>geschrieben...

Das ist das schöne an C, es zwingt einen nicht zu etwas, was man nicht 
will, auch nicht zum sauberen Programmieren.

Oliver
#1452953
Lesenswert?

sasa schrieb:
> Danke,
>
> jetzt funktioniert es wie in der FAQ. Ich muss dann aber bei jeder .c
> Datei alle Bibliotheken includieren wie z.B: <inttypes.h>,<avr/io.h>,
> <avr/interrupt.h> ...

(Das sind keine Bibliotheken. Das sind ganz normale Include-Files die 
einfach nur Text enthalten. Eine Bibliothek ist etwas anderes und hat 
einen anderen Zweck)

Eines der wichtigen Dinge in C ist es, dass jede *.c die zum Projekt 
gehört, für sich alleine, unabhängig von allen anderen compiliert werden 
kann. Und ja, damit das möglich ist, muss jede einzelne *.c all das 
includen, was sie benötigt.

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