AVR-Studio mit GCC, Projekt aufteilen

Gast #1452889
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
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
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
>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
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.
(Firma: O.D.I.S.) #1453002
Hallo Sasa,

man nimmt mehrere Files um nur die neu zu übersetzen, die sich geändert 
haben. Das Tool das sich damit prächtig auskennt heisst "make".
Wem das zu kryptisch ist, der kann eine IDE wie AVR-Studio, Eclipse, 
VisualStudio (würg) nehmen ...

Gruß

Olaf

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.