库的创建和使用
动态库
创建动态库:
-shared 指明生成动态库
gcc -shared hello.c -o libhello.so
编译:
-L. 表示需要的动态库从当前目录寻找
gcc main.c -lhello -L. -o main
运行:
运行前需要把libhello.so复制到$PATH中,这里有两种选择
a.把库文件复制到查找路径中 cp libhello.so /usr/lib/
b.把当前路径添加到查找路径中 export LD_LIBRARY_PATH=.:LD_LIBRARY_PATH
完成上述的任一步骤后,即可运行./main
总结:
动态库命名习惯:lib[名字].so,libm.so,libpthread.so
编译选项:gcc编译时加-l[名字], gcc -lm, gcc -lpthread
例如涉及线程的程序编译时要用到libpthread.so这个库,则编译时为gcc main.c -o main -lpthread
静态库
创建静态库:
gcc -c hello.c //生成hello.o
ar -r libhello.a hello.o //ar类似tar,把中间代码归档
编译:
gcc main.c libhello.a -L. -o main
运行: ./main