Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

promblem - Brak kompilacji z języka C

mariusz6748 19 Lut 2015 18:40 966 21
  • #1 19 Lut 2015 18:40
    mariusz6748
    Poziom 5  

    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?

    0 21
  • #2 19 Lut 2015 18:50
    tadzik85
    Poziom 38  

    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.

    0
  • #3 19 Lut 2015 19:41
    mariusz6748
    Poziom 5  

    Mogę prosić jaśniej?

    0
  • #4 19 Lut 2015 19:44
    tadzik85
    Poziom 38  

    wyłącz antywirus na chwilę

    0
  • #5 19 Lut 2015 19:51
    mariusz6748
    Poziom 5  

    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.

    0
  • #6 19 Lut 2015 19:52
    tadzik85
    Poziom 38  

    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ą.

    0
  • #7 19 Lut 2015 20:14
    mariusz6748
    Poziom 5  

    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

    0
  • #8 19 Lut 2015 20:20
    tadzik85
    Poziom 38  

    Jak byk plik main.c nie jest w odpowiednim miejscu. Musi być tam gdzie jest wskażany przez makefile.

    -1
  • #9 19 Lut 2015 20:32
    grko
    Poziom 33  

    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.

    1
  • #10 19 Lut 2015 20:50
    tadzik85
    Poziom 38  

    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

    0
  • #11 19 Lut 2015 20:55
    mariusz6748
    Poziom 5  

    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?

    0
  • #12 19 Lut 2015 20:56
    grko
    Poziom 33  

    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).

    0
  • #13 19 Lut 2015 21:03
    mariusz6748
    Poziom 5  

    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.

    0
  • #14 19 Lut 2015 21:07
    grko
    Poziom 33  

    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 :))

    0
  • #15 19 Lut 2015 21:11
    tadzik85
    Poziom 38  

    Prawa dostępu. Makefile wygląda nie najgorzej.
    Daj gcc uruchamianie jak administrator.

    0
  • #16 19 Lut 2015 21:24
    mariusz6748
    Poziom 5  

    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?

    0
  • #17 19 Lut 2015 21:45
    tadzik85
    Poziom 38  

    odpal CMD
    wpisz: sh -version
    podaj wynik

    właściwości pliku avr-gcc.exe ustaw uruchamiaj jako administrator czy jakoś tak

    0
  • #18 19 Lut 2015 21:50
    mariusz6748
    Poziom 5  

    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.

    0
  • #19 19 Lut 2015 22:18
    tadzik85
    Poziom 38  

    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

    1
  • #20 19 Lut 2015 22:29
    mariusz6748
    Poziom 5  

    Wykonałem ten kod i otrzymałem:

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


    PATH to plik, czy wpis w jakimś pliku?

    0
  • Pomocny post
    #21 19 Lut 2015 22:31
    tadzik85
    Poziom 38  

    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.

    2
  • #22 25 Lut 2015 13:35
    mariusz6748
    Poziom 5  

    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 :)

    0
  Szukaj w 5mln produktów