Sto cercando di imparare a creare librerie statiche e dinamiche e sto riscontrando un po 'di problemi nel comprendere il mio insegnante per quanto riguarda le biblioteche. La mia idea di creare una libreria dinamica è questa:
gcc -c main.c -o main.o
gcc -c -fPIC func.c -o func.o
gcc -shared -Wl,-soname,-libfunc.so.1 -o libfunc.so.1.0.1 func.o
ldconfig -n .
ln -sf libfunc.so.1.0.1 libfunc.so
gcc main.o libfunc.so.1.0.1 -o prog1
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
Ora il mio insegnante dice che la linea precedente deve apparire così:
gcc main.o -o prog1 -L. -lfunc
Qualcuno può spiegarmi l'esatta differenza tra quei due? Grazie!