WinAVR a Programmers notepad

Jan Waclawek konfera na efton.sk
Čtvrtek Červen 16 16:41:21 CEST 2011


Ach jaj.

.h nie je kniznica a nelinkuje sa. #include je doslovne vlozenie. Linkuje sa prelozeny .c, obvykle nazyvany .o alebo .obj, a "pridava" sa to do prikazu pre linker. To vo Vasom pripade bude schovane v makefile.

Toto je problematicke len tak vyguglovat, lebo sa to historicky poklada za zakladnu znalost kazdeho kto robi v C.

Poslite ten makefile a meno suboru, v ktorom mate tie Vase funkcie.

wek



----- Original Message ---------------

Subject: WinAVR a Programmers notepad
   From: Michal Grunt <michal.grunt at vynet.cz>
   Date: Thu, 16 Jun 2011 16:13:06 +0200
     To: "HW-news (hw-list at list.hw.cz)" <hw-list at list.hw.cz>

>Zkousim misto AVR Studia program Programmer's notepad (zda se mi v nem zobrazeny kod prehlednejsi a vubec proc to nezkusit). Zalozim projekt s jednim zdrojovym .c souborem. Zkopiruju do adresare kde je zdrojovy .c soubor makefile z c:\WinAVR-20100110\sample\Makefile. Takto jednoduchy priklad zkompiluju bez problem, ale jakmile mam svoji vlastni .h knihovnu a do do zdrojoveho .c ji prilozim, compiler hodi chybu undefined reference to (a ted je jmeno procedury z knihovny)... Nejspis to je tim, ze neni v makefile nadefinovano, aby to linkovalo i "uzivatelske".h soubory. Kde se to da nastavit (co editovat/pridat). Googluji uz peknou chvilku, ale nic o tom nemuzu najit.
>
>Prikladam vystup z prekladace. Nikde neni zminka o .h knihovne.
>
>> "make.exe" all
>
>-------- begin --------
>avr-gcc (AVR_Toolchain_3.0_149) 4.4.3
>Copyright (C) 2010 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=gnu89 -MMD -MP -MF .dep/main.o.d main.c -o main.o
>
>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=gnu89 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref     -lm
>main.o: In function `main':
>c:\users\michal.grunt\desktop\testavr01/main.c:14: undefined reference to `PortInitialize'
>c:\users\michal.grunt\desktop\testavr01/main.c:15: undefined reference to `SerialInitialize'
>c:\users\michal.grunt\desktop\testavr01/main.c:17: undefined reference to `TxDString'
>make.exe: *** [main.elf] Error 1



Další informace o konferenci Hw-list