consolidate all repos to one for archive
This commit is contained in:
51
semester_4/namenska_programska_oprema/Naloga_5/ukazi.txt
Normal file
51
semester_4/namenska_programska_oprema/Naloga_5/ukazi.txt
Normal file
@@ -0,0 +1,51 @@
|
||||
################################################################################################################
|
||||
#
|
||||
# STATICNA KNJIZNICA
|
||||
################################################################################################################
|
||||
$ gcc -c libprva.c -o libprva.o
|
||||
$ ar rcs libprva.a libprva.o
|
||||
|
||||
r - Insert the files member into archive (with replacement)
|
||||
c - Create the archive. The specified archive is always created if it did not exist, when you request an update
|
||||
s - Write an object-file index into the archive, or update an existing one
|
||||
|
||||
$ gcc implicitna.c -o staticna libprva.a
|
||||
|
||||
|
||||
################################################################################################################
|
||||
#
|
||||
# DINAMICNA KNJIZNICA
|
||||
################################################################################################################
|
||||
|
||||
$ gcc -c -fPIC libprva.c
|
||||
|
||||
$ ld -shared -soname libprva.so.1 -o libprva.so.1.0 libprva.o
|
||||
|
||||
$ ldconfig -v -n .
|
||||
|
||||
$ ln -sf libprva.so.1 libprva.so
|
||||
|
||||
################################################################################################################
|
||||
#
|
||||
# DINAMICNA KNJIZNICA IMPLICITNO POVEZOVANJE
|
||||
################################################################################################################
|
||||
|
||||
$ gcc implicitna.c -o implicitna -L. -lprva
|
||||
#Ker uporabljamo dinamične knjižnice moramo program prevesti z dodatnimi zastavicami. Uporabiti moramo zastavico -L, s katero povemo, kje naj povezovalnik išče knjižnice in zastavico -l s katero vključimo knjižnico v program.
|
||||
|
||||
$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
|
||||
#Preden lahko program zaženemo mu moramo na nek način sporočiti, kje lahko najde dinamično knjižnico. Ponavadi se vse knjižnice nahajajo v mapi /usr/lib, /usr/local/lib oz mapah, navedenih v datoteki /etc/ld.so.conf. Knjižnice se iščejo tudi v poteh navedenih v spremenljivki LD_LIBRARY_PATH. V našem primeru bomo knjižnico imeli kar v trenutni mapi, ki jo bomo dodali v spremenljivko z ukazom:
|
||||
|
||||
$ ./implicitna # Sedaj lahko zaženemo program.
|
||||
|
||||
$ strip --strip-unneeded implicitna
|
||||
|
||||
################################################################################################################
|
||||
#
|
||||
# DINAMICNA KNJIZNICA EXPLICITNO POVEZOVANJE
|
||||
################################################################################################################
|
||||
|
||||
$ gcc eksplicitno.c -o eksplicitna -ldl
|
||||
# Da lahko prevedemo program, moramo zraven vključiti še knjižnico libdl. Pri gcc uporabimo torej še zastavico -ldl.
|
||||
|
||||
$ strip --strip-unneeded eksplicitna
|
||||
Reference in New Issue
Block a user