Moinsen, folgendes Problem in Atmel Studio 7.0: Beim Linken findet avr-gcc.exe die Libraries nicht (cannot find -lcmd.h), obwohl diese im Verzeichnis sind (H:\foo\TSW\AtmelStudio\cmd.h) und das Verzeichnis in den Optionen angegeben ist (-Wl,-L"H:\foo\TSW\AtmelStudio") Der Compiler findet alle. Es funktionierte jahrelang mit Make auf WinAVR. Nach Update auf Windows 10 funzte das Make mit WinAVR nicht mehr. sh.exe hatte ein Problem mit cygwin. Bei der Umstellung auf die AS-Toolchain nun o.g. Problem. Hat jemand eine Idee dazu? mny tnx ------ Build started: Project: YanuxNet, Configuration: Release AVR ------ Build started. Project "YanuxNet.cproj" (default targets): Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\7.0\Vs\Compiler.targets" from project "H:\foo\TSW\AtmelStudio\YanuxNet.cproj" (target "Build" depends on it): Using "RunCompilerTask" task from assembly "C:\Program Files (x86)\Atmel\7.0\Extensions\Application\AvrGCC.dll". Task "RunCompilerTask" Shell Utils Path C:\Program Files (x86)\Atmel\7.0\shellUtils C:\Program Files (x86)\Atmel\7.0\shellUtils\make.exe all Building file: .././cmd.c Invoking: AVR/GNU C Compiler : 4.9.2 "C:\Program Files (x86)\Atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe" -x c -funsigned-char -funsigned-bitfields -DNDEBUG -I"C:\Program Files (x86)\Atmel\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -I"H:\foo\TSW\AtmelStudio" -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -Wall -mmcu=atmega1284p -B "C:\Program Files (x86)\Atmel\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega1284p" -c -std=gnu99 -MD -MP -MF "cmd.d" -MT"cmd.d" -MT"cmd.o" -o "cmd.o" ".././cmd.c" Finished building: .././cmd.c Building file: .././YanuxNet.c Invoking: AVR/GNU C Compiler : 4.9.2 "C:\Program Files (x86)\Atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe" -x c -funsigned-char -funsigned-bitfields -DNDEBUG -I"C:\Program Files (x86)\Atmel\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -I"H:\foo\TSW\AtmelStudio" -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -Wall -mmcu=atmega1284p -B "C:\Program Files (x86)\Atmel\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega1284p" -c -std=gnu99 -MD -MP -MF "YanuxNet.d" -MT"YanuxNet.d" -MT"YanuxNet.o" -o "YanuxNet.o" ".././YanuxNet.c" Finished building: .././YanuxNet.c Building target: YanuxNet.elf Invoking: AVR/GNU Linker : 4.9.2 "C:\Program Files (x86)\Atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe" -o YanuxNet.elf cmd.o YanuxNet.o -Wl,-Map="YanuxNet.map" -Wl,--start-group -Wl,-lcmd.h -Wl,-ltms.h -Wl,-lm -Wl,--end-group -Wl,-L"H:\foo\TSW\AtmelStudio" -Wl,--gc-sections -mrelax -mmcu=atmega1284p -B "C:\Program Files (x86)\Atmel\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega1284p" cannot find -lcmd.hcannot find -ltms.hcollect2.exe(0,0): error: ld returned 1 exit status make: *** [YanuxNet.elf] Error 1 The command exited with code 2. Done executing task "RunCompilerTask" -- FAILED. Done building target "CoreBuild" in project "YanuxNet.cproj" -- FAILED. Done building project "YanuxNet.cproj" -- FAILED. Build FAILED. ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ========== Toolchain: AVR/GNU Linker: Command: avr-gcc All Options: -Wl,-Map="$(OutputFileName).map" -Wl,--start-group -Wl,-lcmd.h -Wl,-ltms.h -Wl,-lm -Wl,--end-group -Wl,-L"H:\foo\TSW\AtmelStudio" -Wl,--gc-sections -mrelax -mmcu=atmega1284p -B "C:\Program Files (x86)\Atmel\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega1284p"
Gast
#4669710
Thomas K. schrieb: > -lcmd.h was soll das darstellen? eine Headerdatei ist doch keine lib die man den Linker übergeben kann.
Gast
#4670879
Thomas K. schrieb: > Beim Linken findet avr-gcc.exe die Libraries nicht (cannot find > -lcmd.h), obwohl diese im Verzeichnis sind > (H:\foo\TSW\AtmelStudio\cmd.h) und das Verzeichnis in den Optionen > angegeben ist (-Wl,-L"H:\foo\TSW\AtmelStudio") > Der Compiler findet alle. Du weißt aber schon, was eine Library ist, oder?
Allgemein: Wenn jemand eine Fragestellung nicht vollständig durchblickt und in einem kompetenten Forum nachfragt, ist es bestimmt hilfreich, dem Hilfesuchenden sachdienliche Tipps zu geben. Es ist für den Hilfesuchenden nicht dienlich, Gegenfragen zu bekommen die primär dem Ego des Antwortenden hilft. Und zur Problemlösung: Die anderen Kollateralprobleme habe ich im Posting nur ansatzweise angedeutet. Nach einem Update auf die neuste AS-Version läuft es stabil. Trotzdem danke für die Antworten.
Thomas K. schrieb: > Allgemein: > Wenn jemand eine Fragestellung nicht vollständig durchblickt und in > einem kompetenten Forum nachfragt, ist es bestimmt hilfreich, dem > Hilfesuchenden sachdienliche Tipps zu geben. > > Es ist für den Hilfesuchenden nicht dienlich, Gegenfragen zu bekommen > die primär dem Ego des Antwortenden hilft. Nun ja, man kann den Hinweis, daß es völliger Blödsinn ist, headerdateien als libs zu linken, sicherlich unterschiedlich formulieren. Blödsinn bleibt es trotzdem. Und wenn dann der Klassiker "das hat schonmal funktioniert" kommt, zeigt das die völlige Ahnungslosigkeit des Fragenden. Drauf wird die Antwort dann angepasst. Oliver
> Und wenn dann der Klassiker "das hat schonmal funktioniert" kommt, zeigt > das die völlige Ahnungslosigkeit des Fragenden. Drauf wird die Antwort > dann angepasst. > Oliver Hallo Oliver, wie ich schrieb: "Es funktionierte jahrelang mit Make auf WinAVR." ist keine Garantie, dass es auch mit der AS-Toolchain funzt. Und genau darauf bezog sich meine Frage. Wir Menschen unterscheiden uns in dem was wir wissen, wir sind alle gleich in dem was wir nicht wissen. Es ist schade, dass Hildesuchende durch solche obsolten Diskussionen vom Posten abgeschreckt werden. Ich schlage vor, dass wir den Thread hier schließen, da für Suchende nix Neues dabei herum kommt. mny tnx.
Gast
#4671368
Thomas K. schrieb: > "Es funktionierte jahrelang mit Make auf WinAVR." ist > keine Garantie, dass es auch mit der AS-Toolchain funzt. Und genau > darauf bezog sich meine Frage. Das kann noch nie Funktioniert haben! Aus dem einfachen Grund, weil eine Headerdatei keine Lib ist! (Nebenbei: Die Atmel-Toolchain nutzt auch make und den gcc und blah pipapo. Wenn es angeblich mit make und WinAVR ging, geht es auch mit der Atmel-Toolchain.) Und ich frage nochmal: Weißt du überhaupt was eine Lib ist? Wenn du es weißt, frage ich mich, weshalb du versuchst dem Linker eine Headerdatei zu übergeben. Die interessante Frage ist jetzt aber: Ist dein -l ein kleines L oder ein großes i? Wenn du sagst, das es mit make funktioniert hat, dann gehe ich davon aus, das es ein großes i sein soll für den Include-Pfad. Mit einem L (egal ob groß oder klein) kann es aber nie funktioniert haben, denn das ist zum Linken von Libs. Ein -l (kleines L) macht aus deinem xyz.h ein libxyz.h.a So, anstatt zu weinen, wie ungerecht und böse diese Welt doch zu dir ist, könntest du auch einfach mal Fragen beantworten! Denn dir wurde sehr wohl geholfen, nämlich hier Peter II schrieb: > Thomas K. schrieb: >> -lcmd.h > > was soll das darstellen? eine Headerdatei ist doch keine lib die man den > Linker übergeben kann. und auch von mir, hier: Kaj schrieb: > Thomas K. schrieb: >> Beim Linken findet avr-gcc.exe die Libraries nicht (cannot find >> -lcmd.h), obwohl diese im Verzeichnis sind >> (H:\foo\TSW\AtmelStudio\cmd.h) und das Verzeichnis in den Optionen >> angegeben ist (-Wl,-L"H:\foo\TSW\AtmelStudio") >> Der Compiler findet alle. > Du weißt aber schon, was eine Library ist, oder? An diesen beiden Stellen hättest du erkennen können, wenn du es denn gewollt hättest, das Du ganz vielleicht eventuell irgendwas falsch gemacht hast. Und dir wurde sogar gesagt was: Du versuchst dem Linker eine Headerdatei zu geben, wobei Du die ganze Zeit von einer Library redest... Eine Headerdatei ist aber KEINE Library. Ein -lcmd.h macht daraus ein libcmd.h.a... und natürlich existiert diese Datei nicht. Dir wurde hier Hilfe zur Selbshilfe gegeben, offenbar willst du aber gar keine Hilfe... okay, warum fragst du dann überhaupt? Hier mal einfach der Auszug aus man ld zu den Optionen l und L
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
Thomas K. schrieb: > [...] dem Hilfesuchenden sachdienliche Tipps zu geben. Haben wir gemacht! Siehe oben! Thomas K. schrieb: > Es ist für den Hilfesuchenden nicht dienlich, Gegenfragen zu bekommen > die primär dem Ego des Antwortenden hilft. Leider kann ich dir nicht persönlich vor 's Schienbein treten, deswegen gab es ne Gegenfrage. Gegenfragen haben einen Zweck: Dich zum Denken zu bewegen... hat leider nicht funktioniert. Thomas K. schrieb: > Nach einem Update auf die neuste AS-Version läuft es stabil. Okay, du hast irgendwas gemacht, und jetzt "funktioniert" es irgendwie... das eigentliche Problem hast du aber weder verstanden geschweigen denn behoben.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.