WINAVR - linkowanie bibliotek

Witam

Mam taki problem, ze program podzielony jest na kilka plikow i chcialbym, aby przy korzystaniu z funkcji (w pliku glownym) z innych plikow kompilator wlaczal tylko kod tych funkcji z ktorych korzystam, a nie caly plik ze wszystkimi funkcjami... Wydaje mi sie ze bibioteki standartowe tak sa zrobione - podaje sie tylko plik naglowkowy i wlaczany jest tylko ten kod ktory jest uzywany. Probowalem zrobic biblioteke za pomoca libtool w ten sposob :

libtool --mode=link gcc -g -O -o lcd.a lcd.o

powstal plik lcd.a ale niestety chyba nie o to chodzilo.... Czy ktos moglby wyjasnic jak stworzyc taka biblioteke pod WINAVR aby linkowal tylko uzywane funkcje ?

Pozdrawiam ZYGI

Reply to
andree
Loading thread data ...

Sat, 29 May 2004 15:16:40 +0200, na pl.misc.elektronika, andree napisał(a):

Avr-gcc tak nie umie - jeśli linker musi sięgnąć do pliku *.o nawet po jakiś drobiazg to zawsze dołączy cały plik. Konieczne jest skompilowanie każdej funkcji do oddzielnego pliku *.o i potem zrobienie biblioteki *.a z tego zestawu plików ( tak są skonstruowane systemowe ).

BTW - tylko nie pytaj czemu :-)) darowanemu się nie zagląda.

Reply to
Jurek Szczesiul

Biblioteka standardowa (libc) jest tak zrobiona, ze prawie kazda funkcja lezy w oddzielnym pliku (.c albo .S) i rzeczywiscie jezeli korzystasz z danej funkcji, tylko plik z nia (i zalezne od niego) dolinkowuja sie do programu. Polecam w podobny sposob robienie swoich bibliotek czyli kazda funkcja w oddzielnym pliku. Jest porzadek, a i do programu linkowane jest tylko to, co niezbedne.

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.