Forum: Mikrocontroller und Digitale Elektronik CCS fängt die compilierung mit der falsche Datei an


von Elvys M. (terrestrex)


Lesenswert?

Guten Tag zusammen,

seit ein paar Monate beschäftige ich mich mit PIC Controller. Also wurde 
ich nicht sagen ich bin kein Profi aber ich habe das eine oder andere 
verstanden.

Nun habe ich aber ein Problem bei dem ich nicht schlau werde:

Ich programmiere das ganze unter Win7 und die Entwicklingsumgebung MPLAB 
IDE V8.50. Als Compiler verwende ich CSS C Compiler PCWH IDE Version 
3.249.

Bis jetzt ging alle gut. Aber nun entsteht ein Fehler, der ich mir 
einfach nicht erklären kann:

Der Compiler fängt nicht mit der Datei "PU_cotrol.c" an, in der sich die 
main()-Funktion befindet sondern mit eine andere "Com.c".

Dies führt zur Benachrichtigung:
1
Executing: "C:\Program Files\PICC\Ccsc.exe" +FH "Com.c" +EXPORT +DF +LN +T +A +M +Z +Y=9 +EA
2
*** Error 128 "C:\PROGRA~1\PICC\drivers\stdlib.h" Line 23(1,2): A #DEVICE required before this line
3
C:\Users\elvys.melo\Desktop\Ver_c_3\Com.o ===>  1 Errors,  0 Warnings.

Wie ihr sehen konnt, wird hier kein #DEVICE gefunden, denn dieser wurde 
in einer der ersten Zeile der "Haupt"-Datei eingefügt (#include 
<18F458.h>).

Kann mir jemand sagen wie ich den Compiler mitteilen kann, mit welche 
Datei er anfangen soll?

Ich habe auch das ganze Projekt neue angelegt, aber erfolglos. ;(

Ich bedanke mich in Voraus.

Grüße

Terrex

PS Falls ich dieser Beitrag im falschen Forum eintragen habe, tut es mir 
leid, da war ich mir jetzt unsicher.

von Oliver (Gast)


Lesenswert?

Ohne jetzt den Compiler im Detail zu kennen, wird der sich doch wie alle 
anderen C-Compiler auch verhalten.

Und daher hat der keine Ahnung, was in anderern Dateien auf deiner 
Festplatte so steht. Der kennt nur die Datei, die er gerade bearbitet, 
also Com.c, und wenn ihm in der irgend ein include fehlt, dann fehlt das 
da, und ermekcert.
Das ändert sich auch nicht, wenn er erst PU_cotrol.c komilieren würde.

Jede .c-Datei wird com Compiler einzeln compiliert, und in jeder 
.c-Datei müssen alle includes, die benötigt werden, auch includiert 
sein.

Oliver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Elvys MeloDA schrieb:
> Der Compiler fängt nicht mit der Datei "PU_cotrol.c" an, in der sich die
> main()-Funktion befindet sondern mit eine andere "Com.c".

Das ist kein Fehler. Jede C-Source-Datei, die zu Deinem Projekt gehört, 
wird separat übersetzt.

Wenn Du in "PU_cotrol.c" eine Headerdatei einbindest, die für das 
Übersetzen von "Com.c" benötigt wird, dann musst Du diese Headerdatei 
auch in "Com.c" einbinden.

von Elvys M. (terrestrex)


Lesenswert?

Hallo,

ihr habt Recht. Das funktioniert jetzt. Die Frage, die ich mich jetzt 
stelle ist es wieso es davor funktioniert hat?

Aber egal: Ich lerne dazu und Ende gut alles gut. :D

Danke

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.