mehrere source files

OP #2272540
Hallo. Ich habe ein kleines Problem. Und zwar will ich ein Programm in 
mehrere files splitten. Nun pasiert aber folgendes.
1. komplettes Programm in einer Datei -> funktioniert
2. Headerdatei mit Prototypen hinzufügen -> funzt auch
3. neues c-file hinzufügen mit #include "myheader" jedoch ohne Inhalt
   -> geht nicht. Es kommen zahlreiche Fehlermeldungen mit:
      "multiple definition of ..."
4. neues c-file ohne Inhalt wird wieder gelöscht -> alles funktioniert 
wieder

Könnt ihr mir bitte helfen? Werd noch verrückt.

Danke schonmal
OP
Ok. Danke. Hab mein Problem gefunden. Man muss in der Header die 
Globalen Variablen deklarieren. Darf sie jedoch nicht definieren, oder? 
Hab jetzt die Zuweisungen der Variablen in der Header enfernt, und siehe 
da, es klappt.
Danke an alle die so schnell geantwortet haben.
Gast
Normalerweise musst du die .c Files garnicht extra hinzufügen.

Du hast also eine Datei main.c und eine Datei ext.c die deine Funktionen 
enthält. Also bastelst du dir eine ext.h (gleicher Name ist wichtig) die 
die Definitionen etc. für die ext.c enthalten.

Du musst dann nur in main.c und ect.c include ect.h machen, die Datei 
ect.c aber nicht extra noch dem Compiler mitteilen ...

hoffe man versteht was ich sagen will ;)
Gast
Sozialer schrieb:
> hoffe man versteht was ich sagen will

Nein.

Ein include von *.c Dateien macht man nicht.

Und dem Projekt/make musst du schon mitteilen, welche Dateien zum 
Projekt gehören.

Vielleicht macht deine IDE das automatisch, aber gegeben ist das nicht.
Gast
aber ich include ja zum Bespiel nur die die stdio.h ... und ich muss 
nicht gezielt angeben wo die source-file liegt ... wie macht der 
compiler das dann?
Gast
Sozialer schrieb:
> aber ich include ja zum Bespiel nur die die stdio.h ... und ich muss
> nicht gezielt angeben wo die source-file liegt ... wie macht der
> compiler das dann?

Der hat einen Standard-Suchpfad. Du unterscheidest ja auch:
1
#include <stdio.h>
und
1
#include "irgendwas.h"

Achte mal auf die Anführungszeichen.
Sozialer schrieb:
> aber ich include ja zum Bespiel nur die die stdio.h ... und ich muss
> nicht gezielt angeben wo die source-file liegt ... wie macht der
> compiler das dann?
Du meinst die dazugehörige *.c?
Die ist in einer Liste in den Compilereinstellungen (als fertige 
Bibliothek, nicht als Source), die wird mit dazu gelinkt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 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.