mikrocontroller.net

Forum: Compiler & IDEs AVR-Studio mit GCC, Projekt aufteilen


Autor: sasa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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_ha...

Autor: sasa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sasa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,
ich werde mein Projekt-Aufbau entsprechend verändern.

Autor: Olaf Dreyer (Firma: O.D.I.S.) (dreyero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.