• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Kompilowanie z Makefile AVR nie działa

VPS Starter Arubacloud
0 głosów
395 wizyt
pytanie zadane 22 czerwca 2021 w Mikrokontrolery przez Mavimix Dyskutant (8,420 p.)
zamknięte 23 czerwca 2021 przez Mavimix

Kompiluję ten program:

#ifndef __AVR_ATmega8__
#define __AVR_ATmega8__
#endif

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include "hd44780.h"


int main(void)
{
   
    lcd_init();
    lcd_clrscr();
    lcd_puts("Hello World");

    while (1);

    return 0;
}

z użyciem tego make'a:

all: main.hex clean

main.o: main.cpp hd44780.h
	avr-gcc -Wall -Os -mmcu=atmega8 -c $< -o $@

main.elf: main.o
	avr-gcc -Wall -Os -mmcu=atmega8 -o main.elf main.o

main.hex: main.elf
	avr-objcopy -j .text -j .data -O ihex main.elf main.hex
	avr-size --format=avr --mcu=atmega8 main.elf

.PHONY: clean
clean:
	rm main.o main.elf

Dlaczego podczas wykonywania kompilacji pokazuje się błąd:

avr-gcc -Wall -Os -mmcu=atmega8 -o main.elf main.o
main.o: In function `main':
main.cpp:(.text+0x94): undefined reference to `lcd_init()'
main.cpp:(.text+0x96): undefined reference to `lcd_clrscr()'
main.cpp:(.text+0x9c): undefined reference to `lcd_puts(char const*)'
make: *** [main.elf] Error 1

komentarz zamknięcia: W main.cpp dodałem #include #include "hd44780.c" ,a w make'u main.o: main.cpp hd44780.h hd44780.c
komentarz 23 czerwca 2021 przez Oscar Nałogowiec (29,340 p.)
To jest złe rozwiązanie. Nie inkluduje się plików .c. Powinieneś niezależnie skompilować main i hd44780 i zlinkować je razem do main.elf

Podobne pytania

+1 głos
0 odpowiedzi 383 wizyt
pytanie zadane 12 kwietnia 2020 w C i C++ przez Patrykosik88 Początkujący (340 p.)
0 głosów
1 odpowiedź 127 wizyt
pytanie zadane 3 lutego 2020 w Mikrokontrolery przez Mavimix Dyskutant (8,420 p.)
+1 głos
2 odpowiedzi 571 wizyt
pytanie zadane 8 kwietnia 2021 w C i C++ przez believer88 Nowicjusz (240 p.)

93,020 zapytań

141,985 odpowiedzi

321,287 komentarzy

62,366 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...