Gast
#1667344
Hallo, ich bekomme immer bei einem Clean folgendes:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
hier mal der Makefile Ausschnitt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Woran kann das liegen?
|
Anzeige
|
Clean Problem
Gast
#1667344
Hallo, ich bekomme immer bei einem Clean folgendes:
hier mal der Makefile Ausschnitt:
Woran kann das liegen? das liegt daran, daß du test.elf erst löschst und dann mit chmod die Rechte dafür setzen willst.
Gast
#1667390
Ja aber im Makefile setze ich doch nirgend wo die Rechte, oder? Das war ein fertiges Template. Du zeigst ja weder das ganze makefile, noch den Aufruf. Irgendwo wird das chmod schon stehen...
Gast
#1667407
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
#1667427
Welchen Compiler und welchen Prozessor verwendest Du? Gibt es dazu keine IDE welche Dir das Makefile-Gefummel abnimmt?
Gast
#1667436
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.
Gast
#1667443
Das mit dem Debug habe ich durch: DEBUG = stabs beseitigt. Nun meckert er wegen: cc1: error: unrecognized command line option "-fwhole-program"
Gast
#1667477
also wenn ich -fwhole-program entferne funktioniert es. Aber kann man das bedenkenlos machen?
Gast
#1667523
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
#1667570
Das NetBeans klappt ja auch, bis auf den Compiler Fehler jetzt mit dem neuen Makefile. Torben schrieb: > also wenn ich -fwhole-program entferne funktioniert es. Aber kann man > das bedenkenlos machen? Hau es weg, du wirst es nicht vermissen. PS: vielleicht hast du eine uralte gcc-Version und mit einer neueren weniger Ärger?
Gast
#1667625
Ich habe Version 4.0.2. Das ist die neuste, die es über Macports gab.
Gast
#1667680
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. hast du die anderen Dateien auch mal neu kompiliert oder nur mit dem alten?
Gast
#1667759
Welche anderen meinst du? Die anderen Sources müsste es ja automatisch machen die habe ich ja hier angegeben: SRC += $(TARGET).c... 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
#1667870
Ja make clean habe ich schon gemacht. Bringt aber auch nix. dann lass halt das -fwhole-program weg; ohne scheint es ja zu gehen Die Option sagt ja auch, daß keine Funktionen nach außen bekannt gemacht werden sollen (kann also nur gehen, wenn alles in einer Datei steht). Hast du mehrere Dateien, musst du die Option weglassen. http://gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/Optimize-Options.html#Optimize-Options
Gast
#1667907
Ja werde ich wohl machen müssen. Mich würde trotzdem interessieren, woran das liegt.
Gast
#1667909
Torben schrieb: > Mich würde trotzdem interessieren, woran das liegt. kann es sein das du *.c datein mit include eingebunden hast?
Gast
#1667917
Nein alles über Header.
Gast
#1667950
-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
Gast
#1667957
Ah danke klingt logisch bis jetzt wird jede Datei einzeln compiliert, und anschließend alles gelinkt. Und wenn nur die main compiliert wird. Fehlt der Rest beim Linken. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|