Forum: Compiler & IDEs schon wieder: make: *** No rule to make target `../main.c', needed by `main.o'. Stop.


von Kevin Lange (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe bisher nur in Assembler programmiert mit dem AVR-Studio 3.56.
Jetzt möchte ich auf C umsteigen und habe gestern dazu die aktuellste 
Version des AVR-Studios und WinAVR runtergeladen. Ich habe alles 
installiert und möchte wie im Tutorial hier beschrieben mit ganz 
einfachem Code beginnen.

Beim "Build all" kommt jedoch folgende nervige Fehlermeldung:

make: *** No rule to make target `../main.c', needed by `main.o'.  Stop.

Ich habe schon im Forum gesucht und mehrere Artikel zum Problem 
gefunden, aber meist ohne konkrete Antworten bzw. funktioniert alles 
nicht was beschrieben ist.

Hat jemand eine Ahnung an was es liegen kann? Ich bin am verzweifeln mit 
dem Kram...  hab das Makefile in den Anhang gestellt.

Oder lohnt es sich 150 Euro zu berappen für einen anständigen C-Compiler 
wie den CodeVision?  Taugt das AVR-Studio und der gcc-Kram denn 
überhaupt was? Bisher habe ich 1 ganzen Tag "verschwendet" und kann 
nichtmal ne LED blinken lassen... traurig für diese IDE...

Danke für alle Tips!!

Kevin

von Johannes M. (johnny-m)


Lesenswert?

Du solltest Dir aber auch die neueste Version vom AVRStudio 
installieren! Und in AVRStudio brauchst Du für den "Normalbetrieb" kein 
extra Makefile zu erstellen. AVRStudio erstellt selbst eines mit den 
Einstellungen, die Du in "Project | Configuration Options" machst.

von Kevin Lange (Gast)


Lesenswert?

Danke für den Hinweis, aber ich habe gestern die aktuellste Version 
runtergeladen:

AVRStudio4b589 und
WinAVR-20080610

Die ServicePacks für das AVR-Studio lassen sich nicht installieren, 
diese sind nur für ältere Versionen.

Ich habe das automatisch erstellte Makefile verwendet, selbst habe ich 
keins geschrieben. Ich hoffe das das die IDE auch kann, sonst wäre das 
echt nervig...

von Johannes M. (johnny-m)


Lesenswert?

Kevin Lange wrote:
> Oder lohnt es sich 150 Euro zu berappen für einen anständigen C-Compiler
> wie den CodeVision?
Ob der "anständiger" ist als der WINAVR sei mal dahingestellt. Er ist 
vielleicht etwas komfortabler zu bedienen und hat einige Erweiterungen, 
die manch einem ein bisschen Arbeit abnehmen (wodurch allerdings 
wiederum dafür gesorgt wird, dass CVAVR-Programme nur mit erheblichen 
Änderungen unter einem anderen C-Compiler compilierbar sind). Außerdem 
hängt es davon ab, was Du damit machen willst und inwiefern Du auf den 
Support angewiesen bist, den ein kommerzieller Compiler mit sich bringt.

> Taugt das AVR-Studio und der gcc-Kram denn
> überhaupt was?
Glaubst Du, es würden so viele Leute mit der Software arbeiten, wenn dem 
nicht so wäre? Und den GCC als "Kram" zu bezeichnen halte ich für 
absolut unverhältnismäßig.

> Bisher habe ich 1 ganzen Tag "verschwendet" und kann
> nichtmal ne LED blinken lassen... traurig für diese IDE...
Eher traurig für Dich! Ich arbeite seit langem mit der 
AVRStudio/WINAVR-Kombination und hatte bisher nie irgendwelche 
nennenswerten Probleme. Und ich bin da nicht der einzige! Abgesehen 
davon ist die Software kostenlos. Wenn Du 100%ig auf eine idiotensichere 
Software angewiesen bist, dann wirst Du wohl dafür bezahlen müssen.

von Kevin Lange (Gast)


Lesenswert?

Uiuiui...  da scheint sich jemand mächtig aufzuregen.

Ich habe das nicht gegen das Forum hier gemeint, aber es nervt schon 
gewaltig wenn man nach so viel Zeit immer noch nicht mit der IDE 
klarkommt. Mal abgesehen davon war schon die Installation nicht 
problemlos möglich. Irgendwelche DLLs haben gefehlt etc... ließ sich 
aber beheben.

Bei gcc weiß ich nicht wer und was alles so dahintersteckt, daher der 
Ausdruck "Kram". Ist nicht negativ gemeint. Der Compiler an sich mag gut 
sein, aber es läuft halt eben nicht einwandfrei mit WinAVR und 
AVRStudio. Die vielen ähnlichen Threads zeigen ja dass ich nicht der 
Einzige bin!

Ich habe übrigens jetzt mal die CodeVision Demo runtergeladen. Ergebnis: 
In 1 Minute installiert und ohne Handbuch oder ähnlichem binnen 5 
Minuten ein laufendes Programm incl. UART und ADC und meiner 
heißgeliebten "Hello World"-Blink-LED. Das zeichnet nicht den Compiler 
aus, aber immerhin ist es bedienerfreundlicher. Die IDE ist gut.Leider 
nicht kostenlos und auf 2k Code begrenzt als Demo. Schade!

von Johannes M. (johnny-m)


Lesenswert?

Kevin Lange wrote:
> Uiuiui...  da scheint sich jemand mächtig aufzuregen.
Aufregen? Ich? Nein, Du hast noch nicht gesehen, was passiert, wenn ich 
mich aufrege... Wenn ich mich aufrege, das würdest Du sogar dreikt 
mitbekommen, obwohl davon auszugehen ist, dass derzeit ein paar tausend 
Kilometerchen und ne Menge Wasser zwischen uns liegen...;-)

> Ich habe das nicht gegen das Forum hier gemeint, aber es nervt schon
> gewaltig wenn man nach so viel Zeit immer noch nicht mit der IDE
> klarkommt. Mal abgesehen davon war schon die Installation nicht
> problemlos möglich. Irgendwelche DLLs haben gefehlt etc... ließ sich
> aber beheben.
Nun, wie schon oben gesagt, bei mir und auch bei vielen anderen lässt 
sich der ganze "Kram" problemlos installieren (sogar unter 
hasta-la-Vista, und das will was heißen!). Unsere Studis arbeiten im 
Programmierpraktikum schon seit einer Weile damit und ich habe bisher 
nichts über Probleme mit Installation oder Anwendung mitbekommen, und 
das, obwohl ich der Ansprechpartner für den ganzen Salat bin. Die 
einzigen Probleme gibt es mit einigen Leuten, die Partout Linux 
verwenden wollen, weil da AVRStudio nicht ohne Zusatz-"Kram" läuft. Und 
ich bringe unseren Studis das ganze lieber anhand eines Compilers bei, 
der nicht ganz so arg viele bequeme, aber nicht portierbare 
nicht-ANSI-Erweiterungen hat. Schließlich sollen die ANSI-C lernen...

> Bei gcc weiß ich nicht wer und was alles so dahintersteckt, daher der
> Ausdruck "Kram".
Da stecken eine Menge Leute und sehr viel Arbeit hinter.

> Ist nicht negativ gemeint. Der Compiler an sich mag gut
> sein, aber es läuft halt eben nicht einwandfrei mit WinAVR und
> AVRStudio.
Was aber bisher meist eher am AVRStudio lag als am WINAVR...

> Die vielen ähnlichen Threads zeigen ja dass ich nicht der
> Einzige bin!
Ist zwar im Prinzip korrekt, aber Du musst eben auch sehen, dass das 
hiesige Forum im deutschen Sprachraum praktisch den AVR-GCC-Support 
darstellt. Die Fragen und Probleme, die beim Support eines kommerziellen 
Compilers auftauchen, werden i.d.R. nicht offen in Foren diskutiert, 
sondern bleiben Sache zwischen Kunde und Support-Mitarbeiter. Und wenn 
jemand keine Probleme mit dem System hat, wird er das auch nicht hier 
posten. Vielleicht sollte Andreas mal eine Rubrik "Lobhudeleien" 
einrichten, in der alle User ihr "Hurra, es hat auf Anhieb geklappt" 
loswerden können. Was glaubst Du, wie da der Laden brummen würde...

> Ich habe übrigens jetzt mal die CodeVision Demo runtergeladen. Ergebnis:
> In 1 Minute installiert und ohne Handbuch oder ähnlichem binnen 5
> Minuten ein laufendes Programm incl. UART und ADC und meiner
> heißgeliebten "Hello World"-Blink-LED. Das zeichnet nicht den Compiler
> aus, aber immerhin ist es bedienerfreundlicher. Die IDE ist gut.Leider
> nicht kostenlos und auf 2k Code begrenzt als Demo. Schade!
Also, für ne "Demo" ist die schon recht ordentlich. Mit 2Ki Code kann 
man zumindest als Anfänger (aber auch für kleinere Projekte im 
professionellen Bereich, es gibt immerhin einige AVRs, in die nur 2KiB 
oder gar weniger reingehen) schon ne Menge machen.

von daniel (Gast)


Lesenswert?

>Oder lohnt es sich 150 Euro zu berappen für einen anständigen C-Compiler
>wie den CodeVision?  Taugt das AVR-Studio und der gcc-Kram denn
>überhaupt was? Bisher habe ich 1 ganzen Tag "verschwendet" und kann
>nichtmal ne LED blinken lassen... traurig für diese IDE...

an einem Tag kann man make tool fast vollständig erlernen, sodass
du im weiteren in der Lage bist deine Makefiles selbst zu 
schreiben/pflegen.

aus meiner Erfahrung kann ich sagen, dass es immer irgendwelche Probleme
gibt. Zeilenendungen in Dateien, Skriptinkompatibiläteten, Pfade, 
Bibliotheken ...
=> viele der Tools sind sehr gut, aber ihr Zusammenspiel im realen Leben
ergibt soviele Kombinationen, dass es immer Probleme an den 
Schnittstellen
gibt und geben wird => lerne damit umzugehen (ohne jammern und weinen),
oder werde lieber Koch :)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Kevin Lange wrote:

> Ich habe das nicht gegen das Forum hier gemeint, aber es nervt schon
> gewaltig wenn man nach so viel Zeit immer noch nicht mit der IDE
> klarkommt.

Weil du offensichtlich nicht einmal in der Lage bist, die Datei
main.c, die du referenzierst, dann auch anzulegen.

Welche Dateien du stattdessen angelegt hast, verrät uns allerdings
auch dein Makefile nicht.  Auf jeden Fall solltest du einfach mal
sowohl im Makefile als auch im Editor den gleichen Namen benutzen.

Wenn du mit der Makefile-Generierung von AVR Studio nicht klar kommst,
kannst du auch allemal Mfile benutzen und im AVR-Studio-Projekt
"externes Makefile" auswählen.

von Kevin Lange (Gast)


Lesenswert?

Vielen Dank für die vielen Tips und die heiße Diskussion.

Ich habe mir das Makefile angesehen und Mfile verwendet. Ging zunächst 
nicht. Die Datinamen sind übrigens überall konstistent. Da hab ich 
peinlich drauf geachtet.

Ich habe alles mal deinstalliert und neu installiert (auf Windows2000, 
Linux hab ich nicht). Ging wieder nicht mit dem AVR-Studio. Dann habe 
ich Mfile nochmal verwendet und es läuft.

Ich frage mich immer noch woran es liegt, es sieht alles gleich aus und 
ich habe die gleichen Textdateien (main.c) eingebunden wie vorher. 
Naja...

Im Netz kursieren übrigens ältere Vollversionen des CodeVision 
Compilers. Da ist etwa 50% der Funktionalität nicht ANSI-C. Mich würde 
das weniger stören solange es läuft. Bequem ist es allemal und für ein 
kleines Quick-and-dirty Projekt sollte das auch reichen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hieß denn deine Datei auch main.c oder zufällig Main.c?

von Moritz (Gast)


Lesenswert?

Ich hab das selbe Problem, beim ersten install hat es mich Stunden 
gekostet und jetzt schon wieder. Dieses Programmers Notepad ist eine 
Qual was GUI angeht, nichtmal ne Hilfe gibts irgendwo?

Ich habe versucht laut GCC Tutorial vorzugehen. Das dort angegebene 
Makefile template verwendet, in PN Projekt erstellt, main.c und makefile 
in mein projektverz. Bei Options->Tools im PN dann versucht "make all" 
anzupassen, zuerst stand %f und %d unter file und folder. Leider finde 
ich nirgends, welche Werte dieses PN für die ganzen %... Variablen 
"sieht". Die WinXP Umgebungsvars stimmen, ebenso die Registry-Keys.

Der Fehler ist auch hier:

-------- begin --------
avr-gcc (WinAVR 20080610) 4.3.0
Copyright (C) 2008 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.

make: *** No rule to make target `main.elf', needed by `elf'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:00

Wie im Artikel zu WinAVR auch beschrieben, nur leider ist dieser sehr 
kurz gefasst bezüglich Ursache des Problems. Die Dateinamen stimmen. Im 
Makefile werden ja auch diese ganzen Variablen %d etc benutzt, ich 
vermute das es an deren Verwendung scheitert, und der Pfad nicht 
gefunden wird. Pfadnamen sind Leerstellen und Sonderzeichen frei.

Vielleicht ist PN auf irgendein anderes makefile eingestellt? Wie weißt 
man PN an ein bestimmtes makefile für die "Make all" Anweisung zu 
verwenden?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Moritz wrote:

> Ich hab das selbe Problem,

Nein, du hast ein anderes:

> make: *** No rule to make target `main.elf', needed by `elf'.  Stop.

Vergleich das mal mit dem Subject des Threads.  Wäre schön, wenn du
lieber einen eigenen Thread für eigene Probleme aufmachst...

In deinem Falle könnte es aber sinnvoll sein, dass du das Makefile mal
postest.

von Heinz (Gast)


Lesenswert?

Hallo zusammen.
Krame dieses etwas ältere Thema wieder raus, da ich das selbe Problem 
habe.
Bin absoluter Einsteiger in c unter AVR.
Würde gerne folgende Zeilen als C-Programm erstellen:

#include <avr/io.h>

int main (void) {

   DDRB  = 0xff;
   PORTB = 0x03;

   while(1) {

   }


   return 0;
}

habe die aktuelle version von Winavr und dann AVR Studio installiert.
Möchte im AVR Studio programmieren.
Wenn ich auf Compile Active File drücke erscheint folgender Fehler:

make: *** No rule to make target `../main.c', needed by `main.o'.  Stop.


drücke ich auf build kommt folgendes:

 make: *** No rule to make target `../main.c', needed by `main.o'. 
Stop.

Mein Projekt heißt main und die c datei main.c und liegt auf c:\avr\

Wo liegt mein Fehler?

Gruß

von Michael H* (Gast)


Lesenswert?

schau doch mal deine projekteinstellungen durch.
wird ein makefile erzeugt?

von Frank L. (florenzen)


Lesenswert?

Die Chancen auf eine gute Antwort könnten enorm steigen wenn du das 
Makefile anhängen würdest.

Liebe Grüße
frank

von Michael H* (Gast)


Lesenswert?

das erzeugt avrstudio selbst. es sollte passen.
tut es das nicht, liegt es vermutlich an den projekteinstellungen

von Heinz (Gast)


Angehängte Dateien:

Lesenswert?

hi

es wird eine makefile erstellt. Siehe Anhang.

Was soll ich bei den Projekteinstellungen noch einstellen?

Gruß

von Michael H* (Gast)


Lesenswert?

damn, es IST das makefile:
1
## Compile
2
main.o: main.c
3
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<
da stand vorher ../main.c
das macht wenig sinn. wo kommt das her? hast du an den pfaden 
rumgespielt?

von Stefan E. (sternst)


Lesenswert?

Natürlich macht "../main.c" Sinn, schließlich wird das make in einem 
Subdir ausgeführt.

von Michael H* (Gast)


Lesenswert?

nicht bei diesem makefile.
guter ton ist es zwar, dass object-files ein subdir bekommen, passiert 
aber hier nirgends.
so genau kenn ich das avr-studio zwar auch nicht, aber es gibt hier 
nirgends anzeichen für ein object-subdir.

von Stefan E. (sternst)


Lesenswert?

> so genau kenn ich das avr-studio zwar auch nicht, aber es gibt hier
> nirgends anzeichen für ein object-subdir.

Das "../main.c" ist das Anzeichen.
Das Makefile wird in dem Subdir erzeugt und das Make dort ausgeführt.

von Frank L. (florenzen)


Lesenswert?

Bist du dir 100% sicher daß die Datei main.c vorhanden ist und nicht 
etwa Main.c oder main.C?

Liebe Grüße
frank

von Michael H* (Gast)


Lesenswert?

Stefan Ernst wrote:
> Das "../main.c" ist das Anzeichen.
> Das Makefile wird in dem Subdir erzeugt und das Make dort ausgeführt.

das obj-dir wird dann vom avr studio vor dem make-aufruf angelegt?
und das fertige elf-file ist dann auch da drin?
verrückte neue welt =)

@Heinz: das obj dir ist vorhanden, die main.c genau so genannt und im 
übergeordneten verzeichnis?

von Heinz (Gast)


Lesenswert?

Hallo zusammen!

Es wird mir eine main.aps , main.aws und main.c erstellt und in einem 
Unterordner default eine Makefile.
Ansonsten sind keine anderen Dateien vorhanden.

Als Betriebssystem nutze ich MS Vista 64bit.
An den Einstellungen vom AVR Studio habe ich nichts geändert. Wenn ich 
da etwas ändern soll, dann sagt es mir bitte.

Gruß

von Michael H* (Gast)


Lesenswert?

@heinz:
kennt vista denn ../dat.ei?
evtl scheiterts daran. spiel doch mal make und geh in einer 
eingabeaufforderung (heißt das noch so?) in dein object-verzeichnis 
unter c:\avr\ und sag sowas wie "dir ../main.c". evtl kannst du im 
makefile auch mal "..\main.c" versuchen (backslash anstatt 
forwardslash).

vorsicht übrigens: nur weil du im makefile per hand was änderst, heißt 
das nicht, dass avr-studio sich nicht erdreistet, das makefile zu 
überschreiben =)
da du eh ganz neu eingestiegen bist, könntest du vllt ganz auf winavr 
umsteigen und das programmers notepad nutzen. ich find das programm 
wirklich gut. hier könntest du dann auch dein makefile nach belieben an 
die ungepflogenheiten deines betriebssystems anpassen =)

von Stefan E. (sternst)


Lesenswert?

Michael H* wrote:
> kennt vista denn ../dat.ei?
> evtl scheiterts daran. spiel doch mal make und geh in einer
> eingabeaufforderung (heißt das noch so?) in dein object-verzeichnis
> unter c:\avr\ und sag sowas wie "dir ../main.c". evtl kannst du im
> makefile auch mal "..\main.c" versuchen (backslash anstatt
> forwardslash).

Vista muss kein Forwardslash kennen, es bekommt ihn nicht mal zu sehen. 
Die nötige Umsetzung geschieht in den Libs, mit deren Hilfe diese ganzen 
Unix-Tools unter Windows kompiliert werden.

> vorsicht übrigens: nur weil du im makefile per hand was änderst, heißt
> das nicht, dass avr-studio sich nicht erdreistet, das makefile zu
> überschreiben =)

Dafür gibt es die Einstellung "Use External Makefile".


@ Heinz:
Wie sieht denn der Projektpfad aus?
Sind da Leerzeichen oder andere Sonderzeichen drin?

von Heinz (Gast)


Lesenswert?

hi

habe deinen tipp mit dem backslah ausprobiert. ohne Erfolg.

Habe daraufhin WinAVR und AVR Studio auf meinen alten XP Rechner 
gespielt und siehe da: ALLES klappt auf Anhieb.
Würde das ganze aber trotzdem gern auf Vista zum laufen bekommen.


Gruß

von Heinz (Gast)


Lesenswert?

Projektpfad:  c:\avr also ohne leerzeichen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael H* wrote:

> kennt vista denn ../dat.ei?

Das kannte schon MS-DOS 3.30.

von Michael H* (Gast)


Lesenswert?

ich kenn vista nicht allzugut - hat es einen neuen kern?
allerdings kannte windows 2000 zum beispiel auch nicht-hässliche, 
ergonomische Benutzeroberflächen. die kennt vista auch nicht mehr =)

ich glaub trotzdem, dass dieser verweis auf das subdir der dreh- und 
angelpunkt ist. vllt sollte das der sicherheit dienen, sowas nicht zu 
erlauben.

von Simon K. (simon) Benutzerseite


Lesenswert?

Classic Theme? Klar gibt es den für Vista. Aber ich hab auch eher 
Abneigungen gegen Vista.

von Michael H* (Gast)


Lesenswert?

@simon:
das ist wohl wie bei einem model mit der schönheits-op: danach trotzdem 
geistig oben ohne =)

@heinz:
ich hab ein bisschen wg vista und avr-studio rumgelesen. lässt du das 
alles als administrator ausführen?

von Heinz (Gast)


Lesenswert?

hi

habe das studio jetzt als Admin ausgeführt, leider ohne Erfolg.
Irgendwelche Ideen?
Bin über jeden Tipp dankbar.

Gruß Alex

von Heinz (Gast)


Lesenswert?

hi

so, es funktioniert.

problem war die zugriffsberechtigung in vista für meinen projektordner.
trotzdem vielen dank für eure zahlreichen vorschläge.

gruß

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.