mikrocontroller.net

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


Autor: Elvys M. (terrestrex)
Datum:

Bewertung
0 lesenswert
nicht 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:
Executing: "C:\Program Files\PICC\Ccsc.exe" +FH "Com.c" +EXPORT +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 128 "C:\PROGRA~1\PICC\drivers\stdlib.h" Line 23(1,2): A #DEVICE required before this line
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.

Autor: Oliver (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Elvys M. (terrestrex)
Datum:

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

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.