1. 将C文件编译并链接为可运行文件: gcc -o hello hello.c -I/usr/include(引用头文件位置)
2. 编译文件: gcc -c hello.c
3. 需要链接库: gcc -o hello hello.c /usr/lib/libm.a(绝对路径); gcc -o hello helloc -lm(到默认库目录查找指定静态库文件.a或是动态库文件.so);
如需增加库搜索文件则为 gcc -o hello -L/usr/testlib/lib hello.c -lm
4. 编译自己的静态库,首先用gcc -c program.c将其编译为.o文件,再用ar crv libtest.a(必须符合库命名规范,即lib + 名 + .a/so) program.o(可为多个.o文件合集),在某些linux系统中还需要使用ranlib libtest.a为库生成一个内容表;接下来的使用与系统函数库一样,即把它扔进默认库或是用-L进行指定。
5. 共享库建立和使用比较麻烦,具体实现可参考http://blog.youkuaiyun.com/winki7/article/details/625704。
对程序使用ldd命令可以看到其运行所需的共享库及其地址。
注: 共享库和静态库的最大区别在于,对于每一个引用该库的程序,静态库在内存中会有多个副本,即每一个程序拥有这样的副本,而共享库是动态链接的,只有一个副本!