andree
Guest
Sat May 29, 2004 12:16 pm
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
Jurek Szczesiul
Guest
Sat May 29, 2004 1:11 pm
Sat, 29 May 2004 15:16:40 +0200, na pl.misc.elektronika, andree napisał(a):
Quote:
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.
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.
--
Pozdrowienia
Jurek Szczesiul
andree
Guest
Sun May 30, 2004 6:59 pm
Użytkownik "Jurek Szczesiul" <jerzy.szczesiul@wycin.ep.com.pl> napisał w
wiadomości
Quote:
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 ).
Dzieki!
Teraz nie bede probowal zrobic czegos czego sie nie da
Adam Dybkowski
Guest
Sun May 30, 2004 8:49 pm
andree wrote:
Quote:
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
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.
--
Adam Dybkowski
adybkows@amwaw.edu.pl
http://www.amwaw.edu.pl/~adybkows/