C program összeállításakor a fordító objektumkódot generál. Az objektumkód generálása után a fordító a linkert is meghívja. A linker egyik fő feladata a könyvtári funkciók kódja (pl. printf(), scanf(), sqrt(), ..stb) elérhető a program. A linker ezt a feladatot kétféleképpen tudja elvégezni: a könyvtári funkció kódját átmásolja az objektumkódra, vagy bizonyos intézkedéseket tesz annak érdekében, hogy a könyvtári funkciók teljes kódját ne másolják, hanem futásidőben elérhetővé tegyék.,

statikus Összekapcsolás és statikus könyvtárak az eredménye, hogy a linker másolatot készít az összes használt könyvtári funkcióról a futtatható fájlra. A statikus összekapcsolás nagyobb bináris fájlokat hoz létre, és több helyre van szüksége a lemezen és a fő memóriában. Példák statikus könyvtárak (könyvtárak, amelyek statikusan kapcsolódik),.a fájlok Linux és .lib fájlok A Windows rendszerben.

A statikus könyvtár létrehozásának lépései hozzunk létre és használjunk statikus könyvtárat UNIX-ban vagy UNIX-ban, mint például az operációs rendszer.
1. Hozzon létre egy C fájlt, amely funkciókat tartalmaz a könyvtárban.,div>

#include <stdio.h>
void fun(void)
{
printf("fun() called from a static library");
}



We have created only one file for simplicity., Több fájlt is létrehozhatunk a könyvtárban.

2. Hozzon létre egy fejléc fájlt a könyvtár

void fun(void);



3. Fordítsd könyvtár fájlokat.

 gcc -c lib_mylib.c -o lib_mylib.o 

4. Statikus könyvtár létrehozása., Ez a lépés több objektumfájl csomagolása egy statikus könyvtárba (lásd az ar-t a részletekért). Ennek a lépésnek a kimenete statikus könyvtár.

 ar rcs lib_mylib.a lib_mylib.o 

5. Most a statikus könyvtár készen áll a használatra. Ezen a ponton mi is csak másolni lib_mylib.egy valahol máshol használni. Demo célokra tartsuk a könyvtárat az aktuális könyvtárban.

hozzunk létre egy illesztőprogram programot, amely a fent létrehozott statikus könyvtárat használja.
1., Hozzon létre egy C fájl, a fő funkció

#include "lib_mylib.h"
void main()
{
fun();
}



2., Állítsa össze az illesztőprogram programot.

gcc -c driver.c -o driver.o

3. Csatlakoztassa az összeállított illesztőprogram programot a statikus könyvtárhoz. Vegye figyelembe, hogy-L. azt jelzi, hogy a statikus könyvtár az aktuális mappában van(lásd ezt a-L és-l opciókkal).

gcc -o driver driver.o -L. -l_mylib

4. Futtassa a driver programot

./driver fun() called from a static library

Az alábbiakban néhány fontos pont található a statikus könyvtárakról.
1. Statikus könyvtár esetén a tényleges kódot a linker kivonja a könyvtárból, majd a végleges végrehajtható fájlt az alkalmazás fordítási/buildelési pontján építi fel.,

2. Minden folyamat saját másolatot kap a kódról és az adatokról. Ahol, mint a dinamikus könyvtárak esetében, ez csak a megosztott kód, az adatok minden folyamatra jellemzőek. A statikus könyvtárak memória lábnyomok nagyobbak. Például, ha az összes ablakrendszer-eszközt statikusan összekapcsolnák, több tíz megabájt RAM-ot pazarolnának el egy tipikus felhasználó számára, a felhasználót pedig sok lapozás lelassítaná.

3. Mivel a könyvtár kódja a fordításkor van csatlakoztatva, a végleges végrehajtható fájlnak nincs függősége a könyvtárra futási időben, azaz., Nincs további futási idő betöltési költségek, ez azt jelenti, hogy nem kell, hogy készítsen végig egy példányt a könyvtár, hogy használják, és mindent az Ön irányítása alatt, nincs függőség.

4. A statikus könyvtárak, ha minden a csomagban az alkalmazás, akkor nem kell aggódnia, hogy az ügyfél lesz a megfelelő könyvtár (verzió) elérhető a rendszer.

5. A statikus könyvtárak egyik hátránya, hogy a statikus könyvtárakban bekövetkező bármilyen változás (up-gradáció) esetén minden alkalommal újra kell fordítania a fő programot.

6., A statikus könyvtárak egyik fő előnye, hogy még most is előnyben részesítik a sebességet. Nem lesz dinamikus lekérdezése szimbólumok statikus könyvtárak. Sok gyártósor szoftver statikus könyvtárakat használ még ma is.

Dynamic linking and Dinamikus Könyvtárak Dinamikus Összekapcsolása nem szükséges a kód, hogy másolt, ez történik, csak helyezve neve, a könyvtárban, a bináris fájl. A tényleges összekapcsolás akkor történik, amikor a program fut, amikor mind a bináris fájl, mind a könyvtár memóriában van. Példák a dinamikus könyvtárak (könyvtárak, amelyek kapcsolódnak a futási idő),. tehát a Linux és.dll az ablakokban.,

hamarosan több pontot fogunk lefedni a dinamikus könyvtárakról és azok létrehozásának lépéseiről.

Ez a cikk által összeállított Abhijit Saha és felül GeeksforGeeks csapat. Kérjük, írjon megjegyzéseket, ha talál valami helytelen, vagy szeretne megosztani több információt a témáról a fent tárgyalt.

figyelem olvasó! Ne hagyja abba a tanulást. Szerezd meg az összes fontos CS elmélet fogalmak Sde interjúk a CS Theory Course egy diák-barát áron lesz ipar kész.

cikk címkék:
gyakorlati címkék:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük