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ß
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?
Hallo Lukas, mach doch bitte mal eine DOS-Box auf und versuche dort das Projekt zu bauen. Was passiert wenn Du "make --version" eingibst? Wie sieht das komplette Projekt aus, kannst Du das bitte hier mal anhängen? Gruß, Michael
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
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.
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...
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
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.
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
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.
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
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
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?
Hallo Lukas,
>Macht das was aus, dass das Make von cygwin stammt?
Ich vermute mal das das Dein Problem ist. Kannst Du nicht
cygwin bei Dir aus dem Pfad nehmen?
Gruß,
Michael
PS: YAGARTO wird hinten an den Pfad eingetragen.
Hallo, du hast Recht! Wenn ich cygwin aus dem Pfad nehme, dann tritt der Fehler nicht mehr auf :-) Es reicht sogar, wenn ich cygwin bei PATH einfach hinter Yagarto setze - wusste gar nicht, dass die Reihenfolge hier eine Rolle spielt?! Vielen lieben Dank für die Hilfe :-)
hp-freund schrieb: > Stell dein System auf relative Pfade ein, dann verschwinden die. Es funktioniert zwar jetzt soweit alles, aber das interessiert mich noch - wie stell ich das am Besten an? :)
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.
Hallo zusammen, meine Beispiele sind relative. Man kann sie beliebig verschieben und immer noch übersetzen. Dort sind keine absoluten Pfade vorhanden. Gruß, Michael
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
