Probleme mit Make unter Eclipse-CDT mit Yagarto

OP #2948518
Lesenswert?

Hallo Leute,

ich bin grade ziemlich am Verzweifeln, denn ich versuche nun schon seit 
fast zwei Tagen, per Eclipse-CDT mit Yagarto etwas auf meinem MB9bF506R 
(CortexM3) debuggen zu können.
Ich habe mehrmals versucht, genau nach den Anweisungen von 
www.yagarto.de/howto/ alles einzurichten.
Im Grunde alles okay, nur sobald ich in Eclipse das Beispiel-Projekt 
"builden" möchte, kommt immer wieder der gleiche nervige Fehler:

"make *** multiple target patterns. Stop"

Ich hab viel gegoogelt, und scheinbar kommt das vor, falls im Make-File 
bei Pfadangaben entweder Leerzeichen enthalten sind, oder 
Doppelpunkte...aber so wie ich das sehe, trifft nichts davon bei mir zu?
Interessant ist für mich auch noch, dass beim ersten Build, alles 
wunderbar funktioniert. Ab dem zweiten Build-Versuch kommt dann die 
genannte Fehlermeldung :-/
Ich häng mal das Make-File an...es stammt nicht von mir, sondern von 
einem frei zugänglichen Beispiel auf der Yagarto-Site.

Habt ihr einen Rat?

Gruß
Angehängte Dateien:
OP #2948545
Lesenswert?

Und wenn ich auf die Fehlermeldung doppelklicke, dann führt es mich in's 
File "main.o.d" mit folgendem Inhalt:

src/main.o: src/main.c \
 c:\yagarto\bin\../lib/gcc/arm-none-eabi/4.7.2/include/stdint.h \
 c:/yagarto/lib/gcc/../../arm-none-eabi/sys-include/stdint.h

c:\yagarto\bin\../lib/gcc/arm-none-eabi/4.7.2/include/stdint.h:

c:/yagarto/lib/gcc/../../arm-none-eabi/sys-include/stdint.h:


...und da soll laut Fehlermeldung der Wurm drin sein, da er mich auf 
Zeile 1 verweist. Hmmm?
Gast #2949019
Lesenswert?

Hallo Michael - einen passenderen Ansprechpartner kann ich wohl nicht 
erwischen :-)

Wenn ich das ganze in der DOS-Box machen möchte, passiert das Gleiche.
Dürfte dann also nichts mit Eclipse zu tun haben, oder?
Nochmal zur Zusammenfassung:
- "make clean" geht
- "make all" geht
- ab jetzt geht kein "make clean" oder "make all" mehr (oben genannte 
Fehlermeldung tritt auf). Erst wenn ich in meinem Ordner den 
".dep"-Ordner von Hand lösche, dann kann ich in der Konsole ganz normal 
wieder "make clean" und anschließend "make all" ausführen lassen.

make --version liefert mir das, was sich im Anhang befindet.

Vielen Dank für die Hilfe :-)

Gruß,
Lukas
Angehängte Dateien:
Gast #2949041
Lesenswert?

Maximilian schrieb:
> Lukas R. schrieb:
>> Und wenn ich auf die Fehlermeldung doppelklicke, dann führt es mich in's
>> File "main.o.d" mit folgendem Inhalt:
>
> Lad die mal hoch, daß man sie original sieht, mit dem echten Whitespace
> etc.

Ah, hast du ja.

Die ist aber auch übel vermurkst. Da sehe ich Spaces statt Tabs, kann 
das sein?

Wenns die .d ist, dann ist auch klar, warum es beim ersten Mal geht...
#2949300
Lesenswert?

Hallo Lukas,

das ist alles etwas merkwürdig. Dein Projekt läuft hier
ohne Probleme. Ich habe aber auch eine Make Version 3.81.

Ich gehe mal davon aus des es nicht direkt am Make liegt
sondern an den andern Tools. Hast Du mal die YAGARTO-Tools benutzt?
Wenn Du diese installiert hast, sollte Make eigentlich die
Version 3.81 haben. Schau mal in diese Richtung.

Evt. hat es damit was zu tun das in dem Makefile "sh" benutzt wird
und das "sh" bei Dir nicht vorhanden ist. Ist aber bei den YAGARTO-Tools
dabei.

Gruß,
Michael
Gast #2949416
Lesenswert?

Die "multiple target patterns" sind die c: in den .o.d Dateien.

Er versucht wie im Makefile ein: make c
auszuführen und das mehrfach.
Stell dein System auf relative Pfade ein, dann verschwinden die.
#2949568
Lesenswert?

Hallo hp-freund,

>Stell dein System auf relative Pfade ein, dann verschwinden die.
Was meinst Du genau damit? Für Leute die ein Makefile als
notwendiges Übel sehen, können mit der Aussage nicht viel anfangen.

Kannst Du bitte mal an einem Beispiel zeigen was Du genau meinst?

Gruß,
Michael
Gast #2949828
Lesenswert?

Da ich selbst kein Window$ bzw. yagarto benutze will ich nichts falsches 
sagen.

Die Frage ist woher kommt das c: wenn das make damit nichts anfangen 
kann?
Gibt es auf dem Rechner noch eine andere make.exe?
Dein make --version meldet sich als cygwin?

Bei dem Beispiel bekomme ich unter Linux die gleiche Fehlermeldung.
Wenn ich in den .d Dateien das c: entferne läuft es.
#2949886
Lesenswert?

Hallo hp-freund.

>Dein make --version meldet sich als cygwin?
Nein, meine Version sieht wie folgt aus:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-mingw32

Gruß,
Michael
Gast #2949887
Lesenswert?

Hallo :-)
Ich habe jetzt mal die Yagarto-Tools installiert - es bleibt 
erwartungsgemäß trotzdem bei der make-Version 3.82.90.
Macht das was aus, dass das Make von cygwin stammt? Wenn ich meinen 
Rechner durchsuche, dann sieht's so aus, als ob dies das einzige 
Make.exe ist, das bei mir existiert.

Wegen den Pfadangaben: wie stell ich mein System auf realtive Pfade um?

Viele Grüße,
Lukas
Gast #2949939
Lesenswert?

Lukas R. schrieb:
> Ich habe jetzt mal die Yagarto-Tools installiert - es bleibt
> erwartungsgemäß trotzdem bei der make-Version 3.82.90.

Das finde ich sehr Merkwürdig. Hab eben zum Test installiert:
1
yagarto-tools-20121018
2

3
GNU Make 3.81
4
Copyright (C) 2006  Free Software Foundation, Inc.
5
This is free software; see the source for copying conditions.
6
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
7
PARTICULAR PURPOSE.
8

9
This program built for i686-pc-mingw32

Hast Du auch die Suchpfade gesetzt/setzen lassen?
Gast #2951716
Lesenswert?

Hab doch kein Window$ und will nicht extra alles installieren um nichts 
falsches zu sagen. Eigentlich ging es nur darum in eclipse die include 
Pfade relativ z.B. zu workspace einzurichten.
Ist ja aber mit dem richtigen make nicht nötig.
#2952934
Lesenswert?

Michael Fischer schrieb:
>>Stell dein System auf relative Pfade ein, dann verschwinden die.
> Was meinst Du genau damit? Für Leute die ein Makefile als
> notwendiges Übel sehen, können mit der Aussage nicht viel anfangen.

Denk nicht weiter drüber nach. Die .d-Files werden automatisch erstellt, 
ud beinhalten die Anhängigkeiten. Ob da jetzt absolute oder relative 
oder gar keine Pfade drin stehen, braucht einen normalerweise nicht zu 
interessieren. Mit dem passendem make funktioniert das einfach.
Auch unter Windows ;)

Oliver

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