GCC
gcc -v -E -x c /dev/null -o /dev/null -march=native 2>&1 | grep /cc1 | grep mtune
статическая библиотека
ar rc libfs.a f1.o f2.o
разделяемая библиотека
gcc -O2 -c main.c -o main.o
gcc -fPIC -O2 -c file_a.c -o file_a.o
gcc -fPIC -O2 -c file_b.c -o file_b.o
gcc -shared -o libab.so file_a.o file_b.o
gcc -L. -Wl,-rpath,/opt/lib main.o -lab -o my_program
библиотека-модуль
gcc -O2 -fPIC -DPIC -c mod_alias.c -o mod_alias.o
gcc -shared -Wl,-soname -Wl,mod_alias.so -o mod_alias.so mod_alias.o