GCC -l option is to link the library. It can use for static and share link. Link -l with library name without the lib prefix and the .a or .so extensions.
Static : gcc -static -ltest xx.c, it will link with libtest.a
share : gcc –ltest xx.c it will link with libtest.so
GCC -E
If there are some MACRO codes are not easy to understand, you can use gcc –E to expand MACRO to C code.
GCC -save-temps
adding parameters -S -save-temps
makes it leave all intermediate files - preprocessed, assembly, objects