› Foros › PC › Software libre
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo1.c -llibreriaExterna
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo2.c -llibreriaExterna
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo3.c -llibreriaExterna
gcc -shared -Wl,-soname,libMiLibreria.so.1 -o libMiLibreria.so.1.0.1 modulo1.o modulo2.o modulo3.o -lc
ldconfig -n /usr/lib
gcc -Wall main.c -o app -lMiLibreria
¿Para hacer la aplicación que use mi librería es necesario tener los .h de los modulos usados para crear la librería?
Y por ultimo, ¿existe alguna forma de dejar solo disponible unas funciones determinadas en mi libreria y no todas las funciones que estén contenida en ella? (una especie de export como ocurre con las DLLs.
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo1.c -llibreriaExterna
codestation escribió:gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo1.c -llibreriaExterna
Esa -llibreriaExterna va en la fase de enlace, no en la de compilación.
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo1.c
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo2.c
gcc -fPIC -g -c -Wall -I/usr/include/DIRlibreriaExterna modulo3.c
gcc -shared -Wl,-soname,libMiLibreria.so.1 -o libMiLibreria.so.1.0.1 modulo1.o modulo2.o modulo3.o -lc -llibreriaExterna
ln -s libMiLibreria.so.1.0.1 libMiLibreria.so.1
ln -s libMiLibreria.so.1.0.1 libMiLibreria.so
libMiLibreria.so -> libMiLibreria.so.1.0.1
libMiLibreria.so.1 -> libMiLibreria.so.1.0.1
libMiLibreria.so.1.0.1
gcc -Wall main.c -o app -lMiLibreria
LD_LIBRARY_PATH=$(pwd) gcc -Wall main.c -o app -lMiLibreria
LD_LIBRARY_PATH=$(pwd) ./app