Makefile?????

Gast #180361
Lesenswert?

Wie funktioiert nur diese Makefile Wirrwar?
Ich sitzt jetzt schon ne ganze Zeit da und konfiguruer diese makefile,
gehe danach wieder in winavr zurück und gehe da auf Tools/Options/Tools
und editier dort dann die Make All Routine indem ich meine konfigurierte
makefile dort auswähle. Aber alles was mir das Programm dann noch zu
sagen hat ist:
 Failed to create process: %1 ist keine zulässige Win32-Anwendung.

ahhh. Bin ich wirklich der einzige, der das nicht kapiert. Da fang ich
doch gleich wieder zum rauchen an bei dem Streß mit dem Ding.

HILFE
Gast #180365
Lesenswert?

Das Mfile Tool hab ich schon gefunden und auch benutzt, aber irgendwie
mach ich da anscheinend was falsch.
Aber wenns damit einwandfrei funktionieren soll, dann klemm ich mich
nochmal dahinter. Wenn ich schon daran scheitere, wie solls denn dann
weiter gehen =)
Gast #180366
Lesenswert?

Hmmm. Hab das ganze jetzt folgendermasen gemacht.
C-File geschreiben.
Als xyz.c gespeichert.
Mfile geöffnet. Die xyz.c als c Source angegeben. Meinen MC angegeben
und dann unter 'save as' das ganze als 'make.exe' in das
Verzechniss der xyz.c gepeichert.
Dann bei WinAVR MakeAll ausgeführt und dann bekomme ich folgende
Meldung:
> "make.exe" all

> Process Exit Code: 255

Was mach ich da noch falsch. Ich brauch doch nur eine *.hex Datei vom
dem C-File.
Gast #180369
Lesenswert?

Ich bekomm da folgende Meldungen:

C:\TEST>"C:\Programme\Atmel\WinAVR\bin\avr-gcc.exe" -g -I. -Os
-mmcu=atmega8535
-c  "C:\test\led01.c"
In file included from C:\test\led01.c:2:
./stdint.h:29: error: conflicting types for 'int16_t'
C:/Programme/Atmel/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/inclu 
de/intty
pes.h:90: error: previous declaration of 'int16_t' was here
./stdint.h:30: error: conflicting types for 'uint16_t'
C:/Programme/Atmel/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/inclu 
de/intty
pes.h:95: error: previous declaration of 'uint16_t' was here
./stdint.h:31: error: conflicting types for 'int32_t'
C:/Programme/Atmel/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/inclu 
de/intty
pes.h:106: error: previous declaration of 'int32_t' was here
./stdint.h:32: error: conflicting types for 'uint32_t'
C:/Programme/Atmel/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/inclu 
de/intty
pes.h:111: error: previous declaration of 'uint32_t' was here
In file included from C:\test\led01.c:3:
./io8535.h:36:4: #error "Include <avr/io.h> instead of this file."


Damit bin ich nun etwas überfordert. Gibts keine win32-anwendung, bei
der ich nur auf ein knöpfchen drücken muß wie beim AVRStudio =)
Gast #180371
Lesenswert?

Aso hab das falshc verstanden. Hab das ganze jetzt nicht als make.exe
sondern als makefile gespeichert.
Jetzt kommt schon mal ein anderer Fehler:
Vom 16-Bit-MS-DOS-Teilsystem
'mein Pfad'
...NTVDM-CPU...ungültiger Befhel enmtdeckt....
CS:0f7d IP:0109 ....
Schließen
Gast #180372
Lesenswert?

Ich habe mal ein kleines Projekt von mir beigelegt.

Vielleicht versuchst Du das mal zu kompileieren.
Einfach mal in ein Verzeichnis entpacken und dann auf der DOS-Ebene
"make" eingeben.

Gruss
Andreas
Angehängte Dateien:
Gast #180373
Lesenswert?

Das kann ich einwadnfrei compilieren.
Hab jetzt auch meinen Fehler entdeckt. Ich hab das Target zweimal
angegeben gehabt =)
Das dann so ne enorme Fehlermeldung rauskommt ist schon sonderlich. An
Sowas hab ich ja auch wirklich als letztes gedacht =)

Trotzdem vielen vielen Dank für deine Hilfe!!!
Gast #180374
Lesenswert?

Ich mache schon lange WINAVR und hab noch nie ein make gebraucht.

Anbei meine Batch.
Da der AVR-Typ eingetragen werden muß, die Batch mit ins
Projektverzeichnis kopieren.

Compiliert alles *.C zusammen, was im aktuellen Verzeichnis steht.

Also DOS-Fenster öffen, ins Projektverzeichnis gehen und "ac"
eintippen.


Peter
Angehängte Dateien:
Gast #180375
Lesenswert?

P.S.:

Die Batch-Methode hat noch einen Vorteil:

Bei der modularen Programmierung entstehen ja immer neue Module.
Kein Problem, jedes neue *.C-File wird automatisch mit dazu gelinkt.

Umgekehrt, um ein Modul wieder zu entfernen, muß man es in ein anderes
Verzeichnis verschieben oder einfach umbenennen z.B. in *.C1.

Man muß also die Batch nur einmal editieren, um den AVR-Typ
festzulegen.
Das ist notwendig, weil es im Gegensatz zu anderen Compilern keine
Möglichkeit gibt, diesen im Sourcefile mit anzugeben.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren