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

Wpływ pliku make na kompilację w Programmers Notepad [WinAVR]

3_at 11 Kwi 2007 23:16 2097 7
REKLAMA
  • #1 3778698
    3_at
    Poziom 14  
    Posty: 168
    Witam wszystkich.
    Dzisiaj próbowałem zająć się pakietem AvrStudio. Niestety podczas kompilacji wyskakiwał błąd którego nie mogłem się pozbyć. No ale nie o to chodzi.

    Mianowicie czy gdy kompilacja w Programmers Notepad [WinAVR] przebiega poprawnie to czy plik "make" zmienia pliki wynikowe? Czy ma na sam przebieg kompilacji jakiś znaczący wpływ? I czy gdyby program go nie wymagał tego pliku to czy znacząco wpłynęło by to na późniejszy program?

    Pod spodem umieściłem link to tutoriala z którego korzystałem. (oczywiście to też mi się nie udało :P). Nie wiem czy coś robie nie tak?
    http://www.salvitti.it/geo/sequencer/dev_tool...ial/GNU_C_Tutorial.html#Changing_the_makefile

    Bardzo proszę o rade.
  • REKLAMA
  • #2 3780775
    szelus
    Poziom 34  
    Posty: 1508
    Pomógł: 315
    Ocena: 53
    Nie napisałeś pytania zbyt jasno :wink:
    Chodzi o plik Makefile czy polecenie (program) make?
    Program make jest odpowiedzialny za "zbudowanie" programu wynikowego tzn. wywołuje on kompilator (i inne narzedzia) z odpowiednimi parametrami dla odpowiednich plików źródłowych i pośrednich.
    "Wiedza" w jaki sposób zbudować program (tzn. co i w jakiej kolejności należy wywołać aby ostatecznie powstał program) jest właśnie zawarta w pliku Makefile.
    To tak w skrócie.

    Oczywiście, dla bardzo prostych programów (np. składających się tylko z jednego pliku źródłowego), można zawołać kompilator bez pomocy polecenia make, podając wszystkie mu niezbedne opcje. Ale i tak kompilator nie tworzy sam pliku hex, tylko plik elf, który dopiero na hex trzeba przekształcić.
    Zresztą nawet nie wiem, czy tak by się dało zrobić w Programmers Notepad - nie korzystam z tego środowiska.
  • REKLAMA
  • #3 3780969
    3_at
    Poziom 14  
    Posty: 168
    Hm....
    Chodziło mi o plik "makefile" hehe.
    Rozumiem z tego że dla bardziej złożonych programów, podczas kompilacji, niezbędny jest plik makefile.
    1. W takim razie czy istnieją inne edytory do niego oprócz MFile [WinAVR], dostarczonym wraz z pakietem.
    2. I jaki może być powód niepoprawnego przebiegu kompilacji?

    Dzięki z góry za pomoc :).
  • #4 3781017
    Minner
    Poziom 19  
    Posty: 289
    Pomógł: 20
    Ocena: 3
    z tego co wiem to plik makefile jest dla kompilacji na uC w WinAvr niezbędny, bo chyba dla różnych procków plik *.hex będzie inny. W końcu to inne rejestry itp
  • REKLAMA
  • #5 3781045
    Owsik
    Poziom 22  
    Posty: 591
    Pomógł: 12
    Ocena: 30
    Spróbuj ściągnąć dokładnie taką samą wersję WinAVR jaka jest w tym tutorialu (20040404), ten program ma to do siebie że różne jego wersje nie zawsze działają tak samo ;)
  • REKLAMA
  • #6 3781208
    3_at
    Poziom 14  
    Posty: 168
    no niestety mimo że pobrałem i zainstalowałem ta wersje to i tak nie chce mi kompilować.
    Może ktoś z was wie jak dokładnie skonfigurować ten program??
  • Pomocny post
    #7 3781463
    trol.six
    Poziom 31  
    Posty: 1650
    Pomógł: 151
    Ocena: 381
    3_at napisał:
    Chodziło mi o plik "makefile" :).
    Rozumiem z tego że dla bardziej złożonych programów, podczas kompilacji, niezbędny jest plik makefile.


    Jak chce ci sie wklepywac ręcznie po kolei 10-20 albo wiecej poleceń to możesz obyć sie bez pliku. Chyba że WinAVR jest jakis dzwiny i sie nie da naczej. Ja używm avr-gcc

    3_at napisał:
    1. W takim razie czy istnieją inne edytory do niego oprócz MFile [WinAVR], dostarczonym wraz z pakietem.


    Z tego co wiem każdy edytor tekstowy. Plik makefile jest plikiem tekstowym.

    3_at napisał:
    2. I jaki może być powód niepoprawnego przebiegu kompilacji?

    Czytaj błedy kompilatora.
  • #8 3810974
    3_at
    Poziom 14  
    Posty: 168
    Witam wszystkich.
    trol.six Powiedział bardzo ważna rzecz, że należy czytać komunikaty które uzyskujemy. Tak więc zacząłem szperać i znalazłem przyczynę swojego problemu.
    Mianowicie w pliku makefile w linijce:

    # List C source files here. (C dependencies are automatically generated.) $(TARGET)
    SRC = new.c


    musi znajdować się taka sama nazwa jaką posiada nasz zapisany plik. Taka mała przestroga dla wszystkich początkujących.
    Dzięki i pozdrawiam :)

Podsumowanie tematu

✨ Dyskusja dotyczy roli pliku Makefile w procesie kompilacji programów AVR w środowisku Programmers Notepad z wykorzystaniem WinAVR. Plik Makefile zawiera instrukcje określające kolejność i parametry wywołań kompilatora oraz narzędzi pośrednich, co jest niezbędne zwłaszcza dla bardziej złożonych projektów. Kompilator samodzielnie nie generuje pliku wynikowego w formacie hex, a jedynie plik elf, który następnie jest konwertowany. W przypadku prostych programów możliwe jest ręczne wywołanie kompilatora, jednak w praktyce plik Makefile jest kluczowy dla poprawnej kompilacji i generowania plików hex dostosowanych do konkretnego mikrokontrolera. Problemy z kompilacją mogą wynikać z niezgodności wersji WinAVR lub błędów w pliku Makefile, np. niezgodności nazw plików źródłowych w zmiennej SRC. Zaleca się korzystanie z wersji WinAVR zgodnej z tutorialem oraz dokładne czytanie komunikatów błędów kompilatora w celu diagnozy problemów.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA