logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Brak kompilacji kodu C dla Atmegi w Programmers Notepad [WinAvr] na Windows 7

mariusz6748 19 Lut 2015 18:40 1677 21
REKLAMA
  • #1 14456073
    mariusz6748
    Poziom 9  
    Posty: 10
    Witajcie.

    Po kilkumiesięcznej przerwie w programowaniu Atmegi, postanowiłem do tego wrócić, jednak spotkała mnie niemiła niespodzianka - podczas próby kompilacji kodu programem Programmers Notepad [WinAvr] wyświetla się błąd:

    Cytat:
    vr-gcc: CreateProcess: No such file or directory


    Mam Windows 7 64bit, plik main.c jest w folderze: c:\projekt, w tym samym folderze znajduje się plik Makefile.

    Komputer łączy się z atmegą, wszystko wskazuje na to, że brak jest avr-gcc, jednak po wpisaniu komendy "avr-gcc" w wiersz poleceń, otrzymuję odpowiedź "no input files" (czyli powinien być).

    W akcie desperacji zainstalowałem Atmel Studio 6, jednak po ustawieniu wszystkiego wyświetla mi się dokładnie taki sam błąd.

    Czy jest w stanie ktoś pomóc?
  • REKLAMA
  • #2 14456125
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Pi0trek121 napisał:
    Proponuje ściągnąć jeszcze raz winavr i zainstalować, dodatkowo polecam zainstalować kompilator eclipse wg mnie jeden z najlepszych kompilatorów.


    eclipse nie jest kompilatorem.


    Komunikat otrzymałeś poprawny. Uruchom make jeszcze.
  • #3 14456353
    mariusz6748
    Poziom 9  
    Posty: 10
    Mogę prosić jaśniej?
  • REKLAMA
  • #4 14456363
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    wyłącz antywirus na chwilę
  • #5 14456414
    mariusz6748
    Poziom 9  
    Posty: 10
    Niestety wyłączenie antywirusa nie pomogło.
    Czytałem o podobnym przypadku, tylko że wtedy pomógł dopiero format komputera, w moim przypadku to odpada.
  • #6 14456418
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    mariusz6748 napisał:
    Niestety wyłączenie antywirusa nie pomogło.
    Czytałem o podobnym przypadku, tylko że wtedy pomógł dopiero format komputera, w moim przypadku to odpada.


    Wklej cała konsole kompilacji, całutką.
  • #7 14456510
    mariusz6748
    Poziom 9  
    Posty: 10
    Cytat:
    > "make.exe" all

    -------- begin --------
    avr-gcc (WinAVR 20100110) 4.3.3
    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.


    Compiling C: main.c
    avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
    avr-gcc: CreateProcess: No such file or directory
    make.exe: *** [main.o] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:01
  • REKLAMA
  • #8 14456536
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Jak byk plik main.c nie jest w odpowiednim miejscu. Musi być tam gdzie jest wskażany przez makefile.
  • #9 14456588
    grko
    Poziom 33  
    Posty: 1386
    Pomógł: 247
    Ocena: 141
    U mnie wywolanie (z dowolnego katalogu) wyglada tak:

    Cytat:

    avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
    avr-gcc: error: main.c: Nie ma takiego pliku ani katalogu
    avr-gcc: fatal error: no input files
    compilation terminated.



    Sprawdz jeszcze raz PATH. Albo wklej projekt tutaj. Wtedy się wszystko wyjaśni.
  • #10 14456659
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    GrzegorzKostka napisał:
    U mnie wywolanie (z dowolnego katalogu) wyglada tak:

    Cytat:

    avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
    avr-gcc: error: main.c: Nie ma takiego pliku ani katalogu
    avr-gcc: fatal error: no input files
    compilation terminated.



    Sprawdz jeszcze raz PATH. Albo wklej projekt tutaj. Wtedy się wszystko wyjaśni.


    Co a ma PATH do rzeczy skoro i make i gcc wywoływane jest ?

    Problemem jest zapewne sam makefile
  • #11 14456682
    mariusz6748
    Poziom 9  
    Posty: 10
    tadzik85 napisał:
    Jak byk plik main.c nie jest w odpowiednim miejscu. Musi być tam gdzie jest wskażany przez makefile.


    Plik Makefile jest w tym samym katalogu co plik main.c, jaka linijka jest odpowiedzialna za wskazanie plików do kompilacji?
  • #12 14456691
    grko
    Poziom 33  
    Posty: 1386
    Pomógł: 247
    Ocena: 141
    Ano racja :). Ślepy jestem. Tak jak kolega tadzik pisze pewnie main.c nie jest w tym samym katalogu co makefile.

    Edit:
    To jak nie to, to wklej tutaj projekt razem z makefile (makefile wrzuc).
  • REKLAMA
  • #13 14456729
    mariusz6748
    Poziom 9  
    Posty: 10
    Cytat:
    C:\projekt>dir
    Wolumin w stacji C to OS
    Numer seryjny woluminu: 2CEE-BB60

    Katalog: C:\projekt

    2015-02-19 21:00 <DIR> .
    2015-02-19 21:00 <DIR> ..
    2015-02-19 21:00 <DIR> .dep
    2015-02-19 21:00 759 main.c
    2015-02-19 21:00 17 463 Makefile

    2 plik(ów) 18 222 bajtów
    3 katalog(ów) 118 645 329 920 bajtów wolnych

    C:\projekt>


    Nadal nie działa...

    Edit: Załączam cały folder spakowany.
    Załączniki:
    • projekt.rar (6.1 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #14 14456751
    grko
    Poziom 33  
    Posty: 1386
    Pomógł: 247
    Ocena: 141
    u mnie śmiga :)

    Cytat:

    gko@gko-debian:~/Pobrane/avr$ make

    -------- begin --------
    avr-gcc (GCC) 4.8.1
    Copyright (C) 2013 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.

    Compiling C: main.c
    avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
    main.c:1:0: warning: "F_CPU" redefined [enabled by default]
    #define F_CPU 800000L
    ^
    <command-line>:0:0: note: this is the location of the previous definition

    Linking: main.elf
    avr-gcc -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref -lm

    Creating load file for Flash: main.hex
    avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock main.elf main.hex

    Creating load file for EEPROM: main.eep
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
    --change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0

    Creating Extended Listing: main.lss
    avr-objdump -h -S -z main.elf > main.lss

    Creating Symbol Table: main.sym
    avr-nm -n main.elf > main.sym

    Size after:
    AVR Memory Usage
    ----------------
    Device: atmega128

    Program: 408 bytes (0.3% Full)
    (.text + .data + .bootloader)

    Data: 0 bytes (0.0% Full)
    (.data + .bss + .noinit)

    -------- end --------



    Skąd masz make ? (wpisz where make w konsoli). Spróbuj coreutils ze strony Freddiego Chopina.

    EDIT:
    Wpisz jeszcze sh i podaj wersję

    Spróbuj zmienić w makefile
    SHELL = cmd (to raczej nie pomoże :))
  • #15 14456766
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Prawa dostępu. Makefile wygląda nie najgorzej.
    Daj gcc uruchamianie jak administrator.
  • #16 14456819
    mariusz6748
    Poziom 9  
    Posty: 10
    GrzegorzKostka napisał:
    Skąd masz make ? (wpisz where make w konsoli).

    Tak po prostu wpisać do systemowego cmd?

    GrzegorzKostka napisał:
    Spróbuj coreutils ze strony Freddiego Chopina.

    Nie bardzo rozumiem co mam nim zrobić.

    GrzegorzKostka napisał:
    Wpisz jeszcze sh --version

    Też niezbyt wiem jak to wpisać.

    GrzegorzKostka napisał:
    Spróbuj zmienić w makefile
    SHELL = cmd

    Ta zmiana daje następujący błąd:
    Cytat:
    > "make.exe" all
    System nie moľe odnale«† okre˜lonej ˜cieľki.
    System nie moľe odnale«† okre˜lonej ˜cieľki.
    ECHO jest wyˆĄczone.
    -------- begin --------
    avr-gcc (WinAVR 20100110) 4.3.3
    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.

    W tym momencie -f byˆo nieoczekiwane.
    make.exe: *** [sizebefore] Error 255

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


    tadzik85 napisał:
    Daj gcc uruchamianie jak administrator.

    W jaki sposób?
  • #17 14456914
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    odpal CMD
    wpisz: sh -version
    podaj wynik

    właściwości pliku avr-gcc.exe ustaw uruchamiaj jako administrator czy jakoś tak
  • #18 14456934
    mariusz6748
    Poziom 9  
    Posty: 10
    wersja sh:
    Cytat:
    GNU bash, version 2.04.0(1)-release (i686-pc-msys)
    Copyright 1999 Free Software Foundation, Inc.


    Jeśli chodzi o uruchamianie jako administrator to nic to nie zmieniło.
  • #19 14457073
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    mariusz6748 napisał:
    wersja sh:
    Cytat:
    GNU bash, version 2.04.0(1)-release (i686-pc-msys)
    Copyright 1999 Free Software Foundation, Inc.


    Jeśli chodzi o uruchamianie jako administrator to nic to nie zmieniło.


    1. w katalogu projektu wywałaj :
    Kod: Bash
    Zaloguj się, aby zobaczyć kod
    daj wynik
    2. pousuwaj tymczasowo z PATH wszystko zbyteczne w tym celu.Zostaw tylko do avr-gcc i make z winavr.

    A dalej to brak pomysłow
  • #20 14457121
    mariusz6748
    Poziom 9  
    Posty: 10
    Wykonałem ten kod i otrzymałem:
    Cytat:
    avr-gcc: CreateProcess: No such file or directory


    PATH to plik, czy wpis w jakimś pliku?
  • Pomocny post
    #21 14457135
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    mariusz6748 napisał:
    Wykonałem ten kod i otrzymałem:
    Cytat:
    avr-gcc: CreateProcess: No such file or directory


    PATH to plik, czy wpis w jakimś pliku?


    Przenieś projekt gdzie indziej. Przeinstaluj jako administrator winavr.

    PATH to zmienna środowiskowa.
  • #22 14475937
    mariusz6748
    Poziom 9  
    Posty: 10
    Problem rozwiązany!

    PPM na Mój komputer -> Zaawansowane ustawienia systemu -> Zaawansowane -> Zmienne środowiskowe.

    Tutaj usunąłem wszystkie wpisy związane z avr-gcc, winavr i innymi. Potem reinstall i wszystko działa.

    @tadzik85 miałeś rację - był błąd w zmiennych środowiskowych, bardzo dziękuję za pomoc :)

Podsumowanie tematu

✨ Użytkownik napotkał problemy z kompilacją kodu C dla mikrokontrolera Atmega w Programmers Notepad z użyciem WinAvr na systemie Windows 7 64-bit. Po próbie kompilacji pliku main.c, pojawił się błąd związany z brakiem pliku lub katalogu. Użytkownik próbował różnych rozwiązań, w tym wyłączenia antywirusa oraz instalacji Atmel Studio 6, jednak problem nie ustąpił. W trakcie dyskusji zasugerowano sprawdzenie lokalizacji pliku Makefile oraz pliku main.c, a także zmiany w zmiennych środowiskowych PATH. Ostatecznie, po usunięciu błędnych wpisów w zmiennych środowiskowych i reinstalacji WinAvr, problem został rozwiązany.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA