Voor zover ik begrijp zijn het bibliotheken, maar wat is het verschil tussen de twee?
Opmerkingen
- Gerelateerd bericht – Wat is ' is het verschil tussen .so, .la en .a bibliotheek bestanden?
Antwoord
 A .a -bestand is een statische bibliotheek, terwijl een .so -bestand een gedeelde object (dynamische) bibliotheek is, vergelijkbaar met een DLL in Windows. Er is wat gedetailleerde informatie over de verschillen tussen de twee op   deze pagina  . 
Reacties
-  .akunnen alleen worden opgenomen als onderdeel van een programma tijdens het compileren..so' s kunnen " worden geïmporteerd " terwijl een programma wordt geladen.
- waar staat .a voor?
-  @hfrmobile De a staat voor  archive  – een statische bibliotheek is een verzameling objectbestanden gemaakt met het arhulpprogramma. Meer info hier
Answer
Als vervolg hierop is een .a-bestand een “ar” -archief. In tegenstelling tot een tar-archief slaat het .o of object op bestanden, waardoor ze onder andere uit het archief kunnen worden gehaald en aan een programma kunnen worden gekoppeld. U kunt ar gebruiken om andere bestanden op te slaan als u dat wilt. / p>
Je kunt een lijst krijgen van de leden van een ar-bestand met de parameter -t, bijvoorbeeld:
ar -t /usr/lib/libc.a Een .so-bestand is een “gedeeld object” -bestand, en heeft veel meer informatie beschikbaar voor de linker zodat leden zo snel mogelijk kunnen worden gekoppeld aan een laadprogramma.
Probeer bijvoorbeeld:
objdump -T /lib/libc-2.11.1.so (of welke versie van libc.so je ook hebt in je / lib-directory.) Merk op dat een .so-bestand ook gewoon een linkerscript kan bevatten dat het naar het bestand ergens anders, of gebruik iets anders.
Interessant is dat een .so-bestand ook een volwaardig programma kan zijn. Probeer bijvoorbeeld /lib/libc.so.6 uit te voeren. (Helaas lijkt dit laatste deel “niet te werken op modernere systemen. Niet dat het” een groot verlies is.)
Opmerkingen
-  Typefout . je bedoelt ar -t /usr/lib/libc.ate schrijven. In feite lijkt de-' t niet nodig te zijn in dit geval. Ook drukt/lib/libc.so.6.alleen wat uitvoer af. Ik weet niet ' of ik het eenfull fledged programzou noemen.
- Het ' is een volwaardig programma in de zin dat het een hoofdsymbool heeft dat door exec kan worden gevonden.
-  Je kunt ook lddop .so ' s, en het zal je laten zien welke andere bibliotheken het gebruikt. Static keert terug met een bericht dat het ' is en geen dynamische bibliotheek.