Clean Problem

Gast #1667344
Lesenswert?

Hallo,
ich bekomme immer bei einem Clean folgendes:
1
Cleaning project:
2
rm -f test.hex
3
rm -f test.eep
4
rm -f test.cof
5
rm -f test.elf
6
rm -f test.map
7
rm -f test.sym
8
rm -f test.lss
9
rm -f test.o  
10
rm -f test.lst
11
rm -f test.s
12
rm -f test.d
13
rm -f .dep/*
14
chmod 755 test.elf
15
chmod: test.elf: No such file or directory
16
make: *** [end] Error 1
17
CLEAN FAILED (exit value 2, total time: 76ms)
hier mal der Makefile Ausschnitt:
1
clean: begin clean_list end
2

3
clean_list :
4
  @echo
5
  @echo $(MSG_CLEANING)
6
  $(REMOVE) $(TARGET).hex
7
  $(REMOVE) $(TARGET).eep
8
  $(REMOVE) $(TARGET).cof
9
  $(REMOVE) $(TARGET).elf
10
  $(REMOVE) $(TARGET).map
11
  $(REMOVE) $(TARGET).sym
12
  $(REMOVE) $(TARGET).lss
13
  $(REMOVE) $(OBJ)
14
  $(REMOVE) $(LST)
15
  $(REMOVE) $(SRC:.c=.s)
16
  $(REMOVE) $(SRC:.c=.d)
17
  $(REMOVE) .dep/*

Woran kann das liegen?
Gast #1667407
Lesenswert?

Ich habe jetzt einfach mal das Makefile aus der Wiki genommen. Da hat 
sich ja einiges geändert zu meinem. Nur jetzt bekomme ich:

error: target system does not support the "dwarf-2" debug format

ach noch was in meinem Makefile wurde
F_CPU = 16000000

geutzt, in dem der Wiki
F_OSC = 16000000

kommt das aufs gleiche?
Gast #1667523
Lesenswert?

Torben schrieb:
> Compiler ist gcc-mp-4.4 CPU Atmega32. Ich nutze Mac, deswegen ist es mit
> einer IDE problematisch. Da nutze ich NetBeans. Das hat leider keine AVR
> Integration.
Code::Blocks
Eclipse

Und bei NetBeans scheinst du dich zu irren, ist zwar für Arm, ansich 
musst du einfach nur auf avr ummünzen und gut ist.
http://www.mikrocontroller.net/articles/Einstieg_in_die_ARM_Entwicklung#Netbeans_IDE
Gast #1667680
Lesenswert?

Gut der Compiler scheint doch nciht aktuell zu sein. Jetzt habe ich den 
neusten und es erben sich folgende Phänomene:


mit -fwhole-program

undefined reference to ...

für alle Funktionen, die ich in der Main aufrufe, und welche in einer 
anderen Datei definiert sind. Und ohne geht es.
#1667861
Lesenswert?

Aber make geht nur nach Dateidatum.
Wenn du die noch mit dem alten Compiler übersetzt hast, dann den
Compiler wechselst und die Quelltexte nicht editierst, wird make
die auch nicht neu übersetzen lassen.
Schließlich sind die Objektdateien doch neuer als die Quellen -
für make also aktuell kompiliert.

make weiß doch nicht, daß der Compiler getauscht wurde und damit die
Objektdateien veraltet sind.

Es kann ja sein, daß es nur klappt, wenn alles neu übersetzt wird.

Bei sowas macht man doch ein make clean und übersetzt dann neu.
Gast #1667950
Lesenswert?

-fwhole-program kann nur funktionieren, wenn es nur einen einzigen 
gcc-Aufruf mit allen .c Dateien auf einmal gibt. Also so etwa:
gcc f1.c f2.c f3.c ...
Oder wenn es generell nur ein einziges .c File gibt.
Wenn mehrere Sourcefiles einzeln kompiliert werden und erst anschließend 
zusammengelinked, dann geht -fwhole-program prinzipiell nicht und man 
muß es weglassen. Der gcc sieht dann halt niemals das komplette Program, 
sondern immer nur jeweils kleine Teile davon.

CU

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