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
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.
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...
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.
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!
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.
>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 :)
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.
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.
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?
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.
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ß
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.
> 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.
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?
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ß
@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 =)
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?
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ß
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.
@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?
hi
so, es funktioniert.
problem war die zugriffsberechtigung in vista für meinen projektordner.
trotzdem vielen dank für eure zahlreichen vorschläge.
gruß