Forum: Compiler & IDEs Makefileunterschied bei I2C Library


von Makefile Verwirrter (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe die I2C Library von Peter Fleury getestet. Mit dem 
mitgelieferten Makefile compliiert es wunderbar. Mit meinem eigenen 
kommen Fehler. WO ist da der Unterschied?

von Makefile Verwirrter (Gast)


Angehängte Dateien:

Lesenswert?

und hier das mitgelieferte:

von Stefan E. (sternst)


Lesenswert?

Bei deinem wird der TWI-Code gar nicht übersetzt, und damit natürlich 
auch nicht dazu gelinkt.

von Makefile Verwirrter (Gast)


Lesenswert?

ok danke habe ich auch gerade entdeckt. Man kann den TWI Code ja aber 
auch per include einbinden, dass sollte ja keinen Unterschied machen 
oder?

von Stefan E. (sternst)


Lesenswert?

Es mag sein, dass das in diesem konkreten (einfachen) Fall keinen 
Unterschied macht, aber trotzdem solltest du dir so etwas erst gar nicht 
angewöhnen. Füge die Datei der Sourcen-Liste im Makefile hinzu, und gut 
ist's.

von Makefile Verwirrter (Gast)


Lesenswert?

ich ahbe nochmal eine frage ich habe jetzt die twimaster.c im makefile 
eingebunden in dieser datei ist #include <i2cmaster.h> eingebunden. 
Wieso bekomme ich dann errors, wenn ich nicht nochmal in der Hauptdatei 
die i2cmaster.h einbinde?

von Stefan E. (sternst)


Lesenswert?

Weil die Dateien unabhängig voneinander übersetzt werden. Beim 
Übersetzen der Hauptdatei ist dem Compiler kein bisschen davon bekannt, 
was in anderen C-Dateien steht. Dies dem Compiler mitzuteilen ist ja 
einer der Hauptzwecke der Header-Dateien.

von Makefile Verwirrter (Gast)


Lesenswert?

ok und wenn ich jetzt noch eine andere c Datei mit Header Datei habe wie 
binde ich die dann ein?
ins makefile die C Datei und im Hauptfile per include die headerdatei?

Und in den beiden Dateien wo binde ich dann #include <stdint.h> ein? In 
der Headerdatei? Oder im C oder in beiden?

von Stefan E. (sternst)


Lesenswert?

Du bindest die jeweiligen Header immer dort ein, wo du sie brauchst. 
Wenn z.B. in der Datei xyz.c die TWI-Funktionen benutzt werden, dann 
bindest du dort die twimaster.h ein, und wenn nicht, dann nicht.

von Makefile Verwirrter (Gast)


Lesenswert?

also ich verstehe den Sinn der Headerdatei k´jetzt so ich binde die 
Header Datei in die c Datei ein. in der Headerdatei binde ich die in der 
Headerdatei und in der c Datei benötigten Headerdateien ein. In der 
headerdatei deklariere ich u.a. die Funtionsprototypen für die C Datei.

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.