Mam pytanie odnośnie bibliotek dynamicznych i statycznych. Jak to z nimi wygląda, chodzi mi głównie o to, że mam bibliotekę do obsługi wątków i chciał by była ona linkowana statycznie, ale tego nie da się przekazać do linkera bo w bibliotekach statycznych się go nie używa, więc jak to wygląda?? Z tego co widziałem w /usr/lib to są tam biblioteki i lib*.a i lib*.so
hm? linker nie jest uzywany do laczenia z bibliotekami statycznymi? co Ty za farmazony pleciesz? oczywiscie ze jest.
pomijajac reczne dynamiczne ladowanie, program, aby moc uzywac 'statycznie' DLL'ki, musi byc zlinkowany z odpowiadajaca jej mikrobiblioteczka statyczna, zwyczajowo blah.a (blah.lib na win32), zgadza sie? wiec linker obrabia static-libs. kropka. cos pokreciles.
i zmien stopke. w wiekszosci przypadkow jest wieksza od Twoich wypowiedzi.
Mi nie chodzi, że nie jest do tego używany, ale że nie używa się go przy tworzeniu bibliotek statycznych.
Przykładowo:
- mam klasę do obsługi wątków korzystającą z pthread
- kompiluję ją i pakuję do biblioteki lib*.a
- jak chcę jej użyć to muszę dodatkowo załączyć -lpthread
I ten ostatni punkt chciał bym wyeliminować
Czyli reasumując chciałbym do mojej biblioteki statycznej dolinkować inną bibliotekę.
w tym temacie pamiec mi zawodzi.. nie daloby sie wziac libpthread.a lub konkretnych .o z jej wnetrza i spakowac razem z Twoimi .o do postaci lib*.a ?
niby tak, ale to jest jak by nie patrzeć dość skomplikowany sposób i zastanawia mnie czy nie ma łatwiejszego.
Ogólnie chodzi o coś takiego jakie jest w Boost::Thread. Że linkuje mi statycznie moją bibliotekę i to z czego korzystam, w tym przypadku pthread.