静态编译:
gcc -c *.c
ar -rcs lib*.a *.o
用法1: cp lib*.a /usr/lib/
gcc test.c -l*
用法2: gcc test.c lib*.a的完整路径
动态编译:
gcc -fpic -c *.c //-fpic表示编译为位置无关代码,加载时不需要重定位。动态库都需要-fpic参数。
gcc -shared *.o -o lib*.so
用法1: cp lib*.so /usr/lib
gcc test.c -l*
用法2: gcc test.c lib*.so的完整路径
静态库是在编译时导入
动态库是在调用时导入
gcc 生成可执行程序时,加-static参数,可生成静态链接的可执行程序