[G++/DL/SD/AR] Biblioteki dynamiczne i statyczne

0

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

0

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.

0

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ę.
0

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 ?

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1