Forum: Compiler & IDEs MSPGCC problem mit den Includes bei test1.c


von Weinga-Unity (Gast)


Lesenswert?

Hi!
Hab mir jetzt die ganze MSPGCC 06.03.03 runtergeladen, in 
C:\Compiler\mspgcc installiert, alle PATH Sachen gemacht, und wenn ich 
die Ziele

   msp430-gcc test1.c -mmcu=msp430x1121 test1.lst

eintippe und starte, kommen hunderte von Fehlermeldungen, dass die 
#ifndef, #define, #endif, usw... in den ganzen .H Datein nicht 
funktionieren.

Kann mir da jemand einen Tipp geben.

Ich möchte nämlich den MSPGCC in meine SDT-Programmierumgebung 
einbinden.
Nähere Infos zu SDT: http://www.weinga-unity.de.vu

mfg Weichinger Klaus

von Joerg Wunsch (Gast)


Lesenswert?

Nun, Du versuchst ein Listing-File zu compilieren?!

von Joerg Wunsch (Gast)


Lesenswert?

Btw., wenn Du es nur in eine Umgebung einbinden willst, solltest
Du von dort aus ohnehin nur "make" aufrufen und den Rest der
Projektlogik in einem Makefile hinterlegen.

von Weinga-Unity (Gast)


Lesenswert?

Wie ich Projekte später kompiliere, ist mir jetzt egal. Ich will 
überhaupt einmal, dass es kompiliert.

Meine Programmierumgebung ermöglicht mir es, die GCC so einzubinden, 
dass ich mir die MAKE-Sachen und das schreiben einer BAT-Datei für jedes 
Projekt erspare.
Derzeit hab ich die SDCC für 8051er eingebunden, und per Mausklick (wie 
in µVISION und KEIL51) wird jedes Projekt kompiliert (egal ob 5 oder 50 
Projektdateien).

Jetzt will ich den MSPGCC einbinden, jedoch muss ich einmal 
herausfinden, wie das Ablauf einer Kompilierung für ein Multifileprojekt 
funktioniert.

DIE TEST1.C funktioniert ja schon einmal nicht. Wie aber bekomm ich es 
zum laufen? Mach ich was falsch?

mfg Weichinger Klaus
http://www.weinga-unity.de.vu

von Joerg Wunsch (Gast)


Lesenswert?

Vermutlich machst Du was falsch.  Siehe erste Antwort.

Aber wenn Du `make' einsparen willst ohne was vergleichbares
zu bieten (make ist kein einfacher Batch), dann denke ich
eher, daß Du etwas grundsätzlich falsch machst.  Nicht daß ich
make für den Stein der Weisen halten würde, es gibt auch
einige Alternativprojekte, die aus den Mängeln von make gelernt
haben -- aber Deine Herangehensweise macht mir nicht den Eindruck,
als wüßtest Du überhaupt um die Mängel von make und warum man
da etwas besser machen könnte.  Sorry, wenn das arrogant klingt.

von Weinga-Unity (Gast)


Lesenswert?

Bis jetzt mach ich garnichts mir make, und hab das auch nochnie 
gebraucht.
Ich will einfach in der MS-DOS eingabeaufforderung die TEST1.C laut TUT 
kompilieren.

Ich gebe ein:
msp430-gcc test1.c -mmcu=msp430x1121 -o test1.elf

Es werden dann zig Fehler angezeigt, dass die #ifndef und #define 
Probleme machen. Warum weiß ich nicht.

Und jetzt eine Frage zu Make:
==================================
Make ist so "ähnlich" wie BAT. Man definiert in der Make, wie das 
projekt Kompiliert werden soll. Soweit hab ich das glaub ich verstanden.
Man hat eine Projekt mit 5 Datein und eine Make, die dafür funktioniert. 
Was ist, wenn ich eine 6. Datei hinzufügen will. Muss ich diese Datei in 
der 6 erwähnen, oder funktioniert das automatisch (aber unter der 
Annahme, dass die 6. Datei eine .H ist aber nicht in einem Ordner ist, 
der in der PATH definiert ist. also z.B. D:\XY\zz\hallo.H).

mfg Weichinger Klaus

von Joerg Wunsch (Gast)


Lesenswert?

Solange Du hier nur ,,die machen Probleme'' schreibst, wird Dir
wohl keiner helfen können.  Meine Kristallkugel ist jedenfalls
gerade in der Werkstatt, ich habe also keine Ahnung, was das
wohl für Meldungen sein werden.

Bitte keine Screenshots von Fehlermeldungen.  Ich hoffe mal, Du
hast nicht wirklich ein MS-DOS (alias Win95/98/ME), sondern
wenigstens ein einigermaßen brauchbares Windows (NT oder höher),
dann kannst Du im cmd.exe folgendes tun:

msp430-gcc ... 2>&1 > logfile

Anschließend kannst Du aus »logfile« mit cut&paste die
relevanten Stellen hier mal zitieren.  Wenn das sehr viel ist,
dann genügt es sicher, die ersten 10 oder so davon zu zitieren.

(Bei MS-DOS-Derivaten hast Du leider keine Chance, das so zu
tun, da deren Kommandoprozessor command.com schlicht zu blöd
ist, die Fehlermeldungen auch in eine Datei umzulenken.)

make: richtig, man definiert in einem Makefile, wie das
Projekt aufgebaut ist.  Dabei werden sowohl die zu verarbeitenden
Dateien als auch die Kommandos notiert.  Die Dateien werden
in ihren gegenseitigen Abhängigkeiten beschrieben, also: das
Endergebnis hängt von diesen und jenen Objektdateien ab, und
wird durch Linken derselben erzeugt.  Jede Objektdatei hängt
von der ihr zugeordneten C-Quelldatei ab und wird aus dieser
durch Compilieren erzeugt.  make baut daraus einen
Abhängigkeitsbaum und stellt anhand der Dateidaten fest, was
auszuführen ist, um alles auf den neuesten Stand zu bringen.
-- Das ist der wesentliche Unterschied zu einem Batchfile,
der wird immer komplett runtergenuddelt. --  Die Quelldateien
und die Abhängigkeiten (.h sind ja keine Quelldateien selbst)
muß man im Makefile beschreiben, wobei dafür auch jeweils
Tricks denkbar sind, die das automatisieren.

PATH wird immer nur für ausführbare Dateien benötigt, mit
Deinen Programmquellen (bzw. .h Dateien) hat der überhaupt
nichts zu tun.

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.